PageSourceSearch

https://www.kingston.k12.ok.us/dist/assets/CalendarEventsComponent-DL0-GWdQ.js

js kingston.k12.ok.us collected 2026-09-29 16:20:49 UTC 31,568 bytes, 274 lines download raw bytes

1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/FullCalendarView-B0lCpUDU.js","assets/jquery-UIAagU1C.js","assets/_commonjsHelpers-CE1G-McA.js","assets/tooltip-Cfbk5X53.js","assets/purify.es-LQkvcK5U.js","assets/TooltipEscape-D0O60_F4.js","assets/dayjs.min-BgOuhBsv.js","assets/EventsRepository-BfSVWlH7.js","assets/schemas-BdgNnLKl.js"])))=>i.map(i=>d[i]);
2import{$ as v}from"./jquery-UIAagU1C.js";import{u as V,t as A,a as x,E as M,V as R,C as c,b as C,D as b}from"./EventsRepository-BfSVWlH7.js";import{d as f}from"./dayjs.min-BgOuhBsv.js";import"./slick-Ddqr_xR3.js";import{p as y}from"./purify.es-LQkvcK5U.js";import"./_commonjsHelpers-CE1G-McA.js";import"./schemas-BdgNnLKl.js";const N=(function(){const e=typeof document<"u"&&document.createElement("link").relList;return e&&e.supports&&e.supports("modulepreload")?"modulepreload":"preload"})(),O=function(a){return"/dist/"+a},E={},I=function(e,t,n){let i=Promise.resolve();if(t&&t.length>0){let D=function(h){return Promise.all(h.map(m=>Promise.resolve(m).then(g=>({status:"fulfilled",value:g}),g=>({status:"rejected",reason:g}))))};document.getElementsByTagName("link");const d=document.querySelector("meta[property=csp-nonce]"),l=d?.nonce||d?.getAttribute("nonce");i=D(t.map(h=>{if(h=O(h),h in E)return;E[h]=!0;const m=h.endsWith(".css"),g=m?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${h}"]${g}`))return;const u=document.createElement("link");if(u.rel=m?"stylesheet":N,m||(u.as="script"),u.crossOrigin="",u.href=h,l&&u.setAttribute("nonce",l),document.head.appendChild(u),m)return new Promise((T,L)=>{u.addEventListener("load",T),u.addEventListener("error",()=>L(new Error(`Unable to preload CSS for ${h}`)))})}))}function s(d){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=d,window.dispatchEvent(l),!l.defaultPrevented)throw d}return i.then(d=>{for(const l of d||[])l.status==="rejected"&&s(l.reason);return e().catch(s)})},o={FOUR_EVENTS:"four-events",FOUR_EVENTS_FACEBOOK_FEED:"four-events-facebook-feed",FOUR_EVENTS_FULL_CALENDAR:"four-events-full-calendar",MEAL_EVENTS_GRID:"meal-events-grid",SIX_EVENTS:"six-events",FOUR_EVENTS_STACKED:"four-events-stacked",SIX_EVENTS_STACKED:"six-events-stacked"},F=`:root {
3  --event-date-color: #4a5568;
4  --event-date-font-family: sans-serif;
5  --event-date-font-weight: normal;
6  --event-date-font-style: normal;
7  --event-date-bg-color: #ffffff;
8  --event-time-color: #718096;
9  --event-info-color: #718096;
10  --event-info-font-family: sans-serif;
11  --event-info-font-weight: normal;
12  --event-info-font-style: normal;
13}
14
15:host {
16  display: block;
17  font-size: 16px;
18  -webkit-user-select: text;
19  -moz-user-select: text;
20  -ms-user-select: text;
21  user-select: text;
22}
23
24.calendar-event-container {
25  display: flex;
26  overflow: hidden;
27  font-size: 1em;
28  column-gap: 0.5em;
29}
30
31.event-date-container {
32  box-sizing: border-box;
33  display: flex;
34  align-items: center;
35  justify-content: center;
36  flex-direction: row;
37  color: var(--event-date-color, inherit);
38  background: var(--event-date-bg-color, #ffffff);
39  font-family: var(--event-date-font-family, sans-serif);
40  font-weight: var(--event-date-font-weight, normal);
41  font-style: var(--event-date-font-style, normal);
42  font-size: 1.5em;
43  line-height: 1.1em;
44}
45.event-date-container.calendar-event-date__circle {
46  border-radius: 50%;
47  flex-direction: column;
48  gap: 0;
49  width: 4.1666em;
50  height: 4.1666em;
51  margin-left: auto;
52  margin-right: auto;
53}
54.event-date-container.calendar-event-date__rectangle {
55  border-radius: 0.18em;
56  padding: 0.45em 0.3em;
57  row-gap: 0.3em;
58  gap: 0.3em;
59}
60
61.calendar-event-date__weekday {
62  display: none;
63}
64
65.calendar-event-date__month,
66.calendar-event-date__day {
67  letter-spacing: 1px;
68}
69
70.event-time {
71  font-size: 1.125em;
72  color: var(--event-time-color, #718096);
73}
74
75.event-details-container {
76  display: flex;
77  flex-direction: column;
78  justify-content: flex-start;
79  flex-grow: 1;
80  gap: 0.3em;
81  background: var(--event-details-bg, transparent);
82}
83
84.event-title {
85  color: var(--event-info-color, inherit);
86  font-family: var(--event-info-font-family);
87  font-weight: var(--event-info-font-weight, normal);
88  font-style: var(--event-info-font-style, normal);
89  font-size: 1.28em;
90  line-height: 1.4;
91}
92.event-title a {
93  color: var(--event-info-color, inherit);
94  text-decoration: none;
95}
96.event-title a:hover {
97  text-decoration: underline;
98}
99
100.calendar-event-container__stacked {
101  flex-direction: column;
102}
103.calendar-event-container__stacked .event-date-container {
104  flex-shrink: 0;
105  margin-bottom: 0.45em;
106}
107.calendar-event-container__stacked .event-title,
108.calendar-event-container__stacked .event-time {
109  text-align: center;
110}
111.calendar-event-container__stacked .event-details-container {
112  padding: 0.5em;
113}
114
115.calendar-event-container__inline {
116  flex-direction: row;
117  align-items: flex-start;
118  row-gap: 0.3em;
119  gap: 0.3em;
120  flex-shrink: 0;
121  border-radius: 0.18em;
122}
123.calendar-event-container__inline .event-date-container {
124  flex-direction: column;
125  width: 4.1666em;
126  height: 4.1666em;
127  flex-shrink: 0;
128}
129.calendar-event-container__inline .calendar-event-date__rectangle {
130  border-radius: 0.25em;
131}
132.calendar-event-container__inline .event-details-container {
133  padding: 0.5em;
134}
135
136:host([data-cal-style=grid]) .calendar-event-container {
137  height: 100%;
138}
139:host([data-cal-style=grid]) .event-date-container {
140  display: flex;
141  flex-wrap: wrap;
142  justify-content: flex-start;
143  border-radius: 0;
144  padding: 26.5px 20px 26.5px;
145  row-gap: 0.2em;
146  gap: 0.2em;
147  margin-bottom: 0;
148  width: 100%;
149  height: auto;
150  flex-direction: row;
151  position: relative;
152}
153:host([data-cal-style=grid]) .event-date-container::before {
154  content: "";
155  position: absolute;
156  top: 0;
157  right: 0;
158  width: 1px;
159  height: 100%;
160  background: color-mix(in srgb, var(--event-date-color, #4a5568) 20%, transparent);
161}
162:host([data-cal-style=grid]) .event-date-container .calendar-event-date__weekday {
163  width: 100%;
164  display: block;
165  text-transform: uppercase;
166  font-family: var(--event-date-font-family, sans-serif);
167  font-size: 22px;
168  font-weight: 700;
169  font-style: normal;
170  line-height: 1;
171}
172:host([data-cal-style=grid]) .event-date-container .calendar-event-date__month,
173:host([data-cal-style=grid]) .event-date-container .calendar-event-date__day {
174  font-family: var(--event-info-font-family, sans-serif);
175  font-size: 20px;
176  font-weight: 400;
177  font-style: normal;
178  line-height: 1;
179  letter-spacing: normal;
180}
181:host([data-cal-style=grid]) .event-details-container {
182  position: relative;
183  flex: 1 1 auto;
184  padding: 20px;
185  text-align: left;
186}
187:host([data-cal-style=grid]) .event-details-container::after {
188  content: "";
189  position: absolute;
190  top: 0;
191  left: auto;
192  right: 0;
193  width: 1px;
194  height: 100%;
195  background: #CCC;
196}
197:host([data-cal-style=grid]) .event-details-container .event-title,
198:host([data-cal-style=grid]) .event-details-container .event-time {
199  text-align: left;
200  font-weight: 700;
201  font-size: 18px;
202}
203:host([data-cal-style=grid]) .event-details-container .event-title {
204  font-size: 20px;
205}
206:host([data-cal-style=grid]) .event-description {
207  font-size: 16px;
208  line-height: 1.4;
209  position: relative;
210}
211
212:host([data-cal-style=grid]:not([data-cal-type=meal])) .event-title {
213  color: var(--site-design-link-color, var(--event-info-color, inherit));
214}
215:host([data-cal-style=grid]:not([data-cal-type=meal])) .event-title a,
216:host([data-cal-style=grid]:not([data-cal-type=meal])) .event-title a:link,
217:host([data-cal-style=grid]:not([data-cal-type=meal])) .event-title a:visited {
218  color: var(--site-design-link-color, var(--event-info-color, inherit));
219}
220:host([data-cal-style=grid]:not([data-cal-type=meal])) .event-title a:hover {
221  color: var(--site-design-link-color-hover, var(--site-design-link-color, var(--event-info-color, inherit)));
222}
223
224:host([data-cal-style=grid][data-current]) .event-date-container {
225  border-radius: 4px 0 0 0;
226}
227:host([data-cal-style=grid][data-current]) .event-details-container::before {
228  content: "";
229  position: absolute;
230  top: 0;
231  left: 0;
232  width: 1px;
233  height: 100%;
234  background: #CCC;
235}
236
237:host([data-cal-style=grid][data-last-active]) .event-date-container {
238  border-radius: 0 4px 0 0;
239}
240@media (max-width: 768px) {
241  :host([data-cal-style=grid][data-last-active]) .event-date-container {
242    border-radius: 4px 4px 0 0;
243  }
244}
245:host([data-cal-style=grid][data-last-active]) .event-date-container::before {
246  display: none;
247}
248
249:host([data-cal-style=grid][data-cal-type=meal]) .event-details-container {
250  padding: 0;
251  height: 200px;
252}
253:host([data-cal-style=grid][data-cal-type=meal]) .event-details-container .event-description {
254  max-height: 200px;
255  overflow: auto;
256  padding-left: 20px;
257  padding-right: 20px;
258  padding-bottom: 20px;
259}`;f.extend(V);f.extend(A);f.extend(x);class p extends HTMLElement{eventData=null;layoutMode="inline";eventDayShape="rectangle";customCSSVariables=new Map;siteTimezone="UTC";isMealEvent=!1;static VALID_LAYOUT_MODES=["stacked","inline"];static VALID_EVENT_DAY_SHAPES=["rectangle","circle"];static VALID_CALENDAR_STYLES=["grid"];static VALID_CALENDAR_TYPES=["meal","event"];constructor(){super(),this.attachShadow({mode:"open"}),this.injectStyles()}injectStyles(){const e=new CSSStyleSheet;e.replaceSync(F),this.shadowRoot.adoptedStyleSheets=[e]}static get observedAttributes(){return["date-shape","layout-mode","site-timezone"]}connectedCallback(){this.eventData&&this.render()}attributeChangedCallback(e,t,n){t!==n&&(e==="layout-mode"&&this.setLayoutMode(n),e==="date-shape"&&this.setEventDayShape(n),e==="site-timezone"&&this.setSiteTimezone(n))}configure(e){if(!e.eventData||!e.eventData.title||!e.eventData.start_date)throw new Error("Invalid or incomplete event data");if(this.eventData=e.eventData,e.siteTimezone&&(this.siteTimezone=e.siteTimezone),e.layoutMode&&this.isValidLayoutMode(e.layoutMode)&&(this.layoutMode=e.layoutMode),e.eventDayShape&&this.isValidEventDayShape(e.eventDayShape)&&(this.eventDayShape=e.eventDayShape),e.isMealEvent!==void 0&&(this.isMealEvent=e.isMealEvent),e.calendarStyle&&p.VALID_CALENDAR_STYLES.includes(e.calendarStyle)&&this.setAttribute("data-cal-style",e.calendarStyle),e.calendarType&&p.VALID_CALENDAR_TYPES.includes(e.calendarType)&&this.setAttribute("data-cal-type",e.calendarType),e.cssVariables)for(const[t,n]of Object.entries(e.cssVariables))this.customCSSVariables.set(t,n),this.style.setProperty(t,n);this.render()}setEventData(e,t){if(!e||typeof e!="object")throw new Error("Invalid event data");if(!e.title||!e.start_date)throw new Error("Missing required event fields");this.eventData=e,t&&(this.siteTimezone=t),this.render()}setSiteTimezone(e){!e||typeof e!="string"||(this.siteTimezone=e,this.render())}isValidLayoutMode(e){return p.VALID_LAYOUT_MODES.includes(e)}isValidEventDayShape(e){return p.VALID_EVENT_DAY_SHAPES.includes(e)}setLayoutMode(e){this.isValidLayoutMode(e)&&(this.layoutMode=e,this.render())}setEventDayShape(e){this.isValidEventDayShape(e)&&(this.eventDayShape=e,this.render())}setMealCalendarMode(e){this.isMealEvent=e,this.render()}setCSSVariable(e,t){this.customCSSVariables.set(e,t),this.style.setProperty(e,t)}setCSSVariables(e){Object.entries(e).forEach(([t,n])=>{this.setCSSVariable(t,n)})}isValidUrl(e){if(!e||typeof e!="string"||e.trim()==="")return!1;const t=e.trim();if(/^\/event/.test(t))return!0;try{const n=new URL(t);return n.protocol==="http:"||n.protocol==="https:"}catch{return!1}}
259applyCSSVariables(){this.customCSSVariables.forEach((e,t)=>{this.style.setProperty(t,e)})}formatDate(e,t="UTC",n=!1){const i=n?f(e):f(e).tz(t);return{weekday:i.format("dddd"),month:i.format("MMM"),day:i.format("DD")}}formatTime(e,t,n="UTC",i=!1){if(i)return"All Day";if(!e&&!t)return"";const s=f(e),d=f(t);return e&&t?`${this.formatTimeString(s,n)} - ${this.formatTimeString(d,n)}`:e?this.formatTimeString(s,n):""}formatTimeString(e,t="UTC"){return e.tz(t).format("h:mm A")}render(){if(!this.eventData){this.shadowRoot.innerHTML="No Event Data";return}try{this.applyCSSVariables();const{weekday:e,month:t,day:n}=this.formatDate(this.eventData.start_datetime,this.siteTimezone,this.eventData.all_day);this.shadowRoot.innerHTML=`
260                <div class="calendar-event-container calendar-event-container__${this.layoutMode}">
261                    <div class="event-date-container calendar-event-date__${this.eventDayShape}">
262                        <div class="calendar-event-date__weekday">${e}</div>
263                        <div class="calendar-event-date__month">${t}</div>
264                        <div class="calendar-event-date__day">${n}</div>
265                    </div>
266                    <div class="event-details-container">
267                        ${this.isMealEvent?this.renderMealCalendarDetails():this.renderEventDetails()}
268                    </div>
269                </div>
270            `}catch{this.shadowRoot.innerHTML='<div class="error">Failed to load event</div>'}}renderEventDetails(){const e=this.formatTime(this.eventData.start_datetime,this.eventData.end_datetime,this.siteTimezone,this.eventData.all_day);return`
271            <div class="event-title">${this.eventData?.link&&this.isValidUrl(this.eventData.link)?`<a href="${this.eventData.link}" tabindex="-1">${y.sanitize(this.eventData.title)}</a>`:y.sanitize(this.eventData.title)}</div>
272            ${e?`<div class="event-time">${e}</div>`:""}
273        `}renderMealCalendarDetails(){return`<div class="event-description">${y.sanitize(this.eventData.description)}</div>`}}customElements.get("calendar-event")||customElements.define("calendar-event",p);class S{cssVariables;constructor(e){this.cssVariables=e}static cssVarMap=[{componentVar:"--event-date-color",backendVar:"--ss-calendar-events-event-date-color",defaultValue:"inherit"},{componentVar:"--event-date-bg-color",backendVar:"--ss-calendar-events-event-date-bg-color",defaultValue:"inherit"},{componentVar:"--event-time-color",backendVar:"--ss-calendar-events-event-time-color",defaultValue:"inherit"},{componentVar:"--event-info-font-family",backendVar:"--ss-calendar-events-event-title-font-family",defaultValue:"inherit"},{componentVar:"--event-info-font-weight",backendVar:"--ss-calendar-events-event-title-font-weight",defaultValue:"normal"},{componentVar:"--event-info-font-style",backendVar:"--ss-calendar-events-event-title-font-style",defaultValue:"normal"},{componentVar:"--event-info-color",backendVar:"--ss-calendar-events-event-content-color",defaultValue:"inherit"},{componentVar:"--event-date-font-family",backendVar:"--ss-calendar-events-event-date-font-family",defaultValue:"inherit"},{componentVar:"--event-date-font-weight",backendVar:"--ss-calendar-events-event-date-font-weight",defaultValue:"normal"},{componentVar:"--event-date-font-style",backendVar:"--ss-calendar-events-event-date-font-style",defaultValue:"normal"}];getComponentCssVariables(){const e={};for(const{componentVar:t,backendVar:n,defaultValue:i}of S.cssVarMap){if(t==="--event-time-color"){const s=this.cssVariables["--ss-calendar-events-grid-event-details-time-color"];if(s){e[t]=s;continue}}e[t]=this.cssVariables[n]??i}return e}updateCssVariables(e){return this.cssVariables={...this.cssVariables,...e},this.getComponentCssVariables()}}const z=a=>new Promise(e=>setTimeout(e,a)),k="768px",U=200;class B{container;$slickContainer=null;eventsContainer=null;eventsRepository;initialized=!1;cssVariableMapper=null;initialLayoutMode=null;slideIndex;originationDate;sliderWindowDate;eventSliderConfig;constructor(e,t,n){this.container=e,this.eventsContainer=this.container.querySelector(".ss-component-column__events-container"),this.$slickContainer=v(this.container).find(".ss-calendar-events__events-slider"),this.eventsRepository=t,this.originationDate=n.originationDate||new Date,this.sliderWindowDate=new Date(this.originationDate),this.slideIndex=0,this.eventSliderConfig=n,this.buildCssVariableMapper(),this.setupWatchMediaQuery(),this.setupEventsLoader()}getOriginationDate(){return this.originationDate}setOriginationDate(e){this.originationDate=e}buildCssVariableMapper(){this.eventSliderConfig.cssVariables&&Object.keys(this.eventSliderConfig.cssVariables).length>0&&(this.cssVariableMapper=new S(this.eventSliderConfig.cssVariables))}initialize(){if(!this.initialized){if(this.eventsContainer&&this.eventsContainer.classList.add("is-loading"),!this.$slickContainer){console.error("slick container not found");return}this.renderEvents()}}initSlick(){if(this.$slickContainer&&typeof window.slickSliderA11y=="function"){const e=this.eventsContainer?v(this.eventsContainer):void 0;window.slickSliderA11y(this.$slickContainer,e)}if(this.$slickContainer?.slick(this.getSlickConfig()),this.syncClonedSlides(),this.$slickContainer?.on("beforeChange",this.onBeforeSlideChangeHandler),this.$slickContainer?.on("afterChange",this.onAfterSlideChangeHandler),this.$slickContainer?.on("reInit",this.onReInitHandler),this.updateSlideStateAttributes(),this.initialized=!0,this.eventsContainer){const e=this.eventsContainer;this.eventsContainer?.classList.remove("is-loading"),v(e).animate({opacity:1,transform:"translateY(0)"},300,()=>{this.$slickContainer?.trigger("reInit")})}}getSlickConfig(){const e={dots:!1,infinite:!0,centerMode:!1,adaptiveHeight:!0,draggable:!1,zIndex:1e3,prevArrow:this.container.querySelector('.carousel-nav-option[data-direction="prev"]'),nextArrow:this.container.querySelector('.carousel-nav-option[data-direction="next"]')},t=[{breakpoint:768,settings:{rows:2,slidesToShow:1,slidesToScroll:1}}];switch(this.eventSliderConfig.sliderConfiguration){case o.FOUR_EVENTS_FACEBOOK_FEED:case o.FOUR_EVENTS_FULL_CALENDAR:case o.FOUR_EVENTS_STACKED:return{...e,rows:4,slidesToShow:1,slidesToScroll:1,responsive:[{breakpoint:768,settings:{rows:2,slidesToShow:1,slidesToScroll:1}}]};case o.SIX_EVENTS:return{...e,rows:2,slidesPerRow:3,slidesToShow:1,slidesToScroll:1,responsive:[{breakpoint:768,settings:{rows:2,slidesPerRow:1,slidesToShow:1,slidesToScroll:1}}]};case o.SIX_EVENTS_STACKED:return{...e,rows:6,slidesToShow:1,slidesToScroll:1,responsive:[{breakpoint:768,settings:{rows:2,slidesToShow:1,slidesToScroll:1}}]};case o.MEAL_EVENTS_GRID:{const n=this.eventSliderConfig.isMealCalendar;return{...e,adaptiveHeight:n,slidesToShow:5,slidesToScroll:5,responsive:[{breakpoint:768,settings:{rows:1,slidesToShow:1,slidesToScroll:1,adaptiveHeight:!0}}]}}case o.FOUR_EVENTS:default:return{...e,slidesToShow:4,slidesToScroll:4,responsive:t}}}timePeriodToFetchEvents(){const e=[6,6],t=[];return e.forEach(n=>{const i=f(this.sliderWindowDate).format("YYYY-MM-DD"),s=f(this.sliderWindowDate).add(n,"month").format("YYYY-MM-DD");this.sliderWindowDate=f(this.sliderWindowDate).add(n,"month").add(1,"day").toDate(),t.push({fromDate:i,toDate:s})}),t}async renderEvents(){this.initialLayoutMode=this.eventSliderConfig.layoutMode||"stacked";const e=window.matchMedia(`(max-width: ${k})`);let t=0;for(const n of this.timePeriodToFetchEvents()){t++>0&&await z(U);const{events:i,siteTimezone:s}=await this.fetchEvents(n.fromDate,n.toDate);for(const d of i){if(--this.eventSliderConfig.displayEvents<0||typeof d!="object"){this.container.dis
273patchEvent(new CustomEvent("ss-calendar-events:loaded"));return}const l=new p;l.configure({eventData:d,siteTimezone:s,layoutMode:e.matches?"stacked":this.initialLayoutMode,eventDayShape:this.eventSliderConfig.eventDayShape||"rectangle",isMealEvent:this.eventSliderConfig.isMealCalendar,calendarStyle:this.getCalendarStyle(),calendarType:this.getCalendarType(),cssVariables:this.cssVariableMapper?.getComponentCssVariables()||{}}),l.setAttribute("data-slide-index",this.slideIndex.toString()),this.$slickContainer?.append(l),this.slideIndex++}}this.container.dispatchEvent(new CustomEvent("ss-calendar-events:loaded"))}async fetchEvents(e,t){try{if(isNaN(this.eventSliderConfig.calendarId)||this.eventSliderConfig.calendarId<=0)throw new Error("Calendar ID is required");return await this.eventsRepository.fetchEvents(this.eventSliderConfig.calendarId,e,t)}catch{return{events:[],siteTimezone:"UTC"}}}setupWatchMediaQuery(){window.matchMedia(`(max-width: ${k})`).addEventListener("change",t=>{this.container.querySelectorAll("calendar-event").forEach(n=>{n.setLayoutMode(t.matches?"stacked":this.initialLayoutMode)})})}setupEventsLoader(){this.container.addEventListener("ss-calendar-events:loaded",()=>{if(!this.initialized&&this.slideIndex>0&&this.initSlick(),!this.initialized&&this.slideIndex===0){const e=this.container.querySelector("template.ss-calendar-events__no-events-message__template");if(e){const t=e.content.cloneNode(!0);this.eventsContainer?.prepend(t),this.eventsContainer?.classList.remove("is-loading"),this.eventsContainer?.classList.add("is-empty")}}})}onBeforeSlideChangeHandler=e=>{v(e.target).find(".slick-slide.slick-active calendar-event").each((t,n)=>{n?.shadowRoot?.querySelector("a")?.setAttribute("tabindex","0")}),v(e.target).find(".slick-slide:not(.slick-active) calendar-event").each((t,n)=>{n?.shadowRoot?.querySelector("a")?.setAttribute("tabindex","-1")})};onAfterSlideChangeHandler=()=>{this.updateSlideStateAttributes(),this.announceCurrentSlide()};announceCurrentSlide(){if(!this.$slickContainer)return;const e=this.container.querySelector(".js-events-slider-announcer");if(!e)return;const t=this.$slickContainer.slick("getSlick");if(!t)return;const n=Math.max(1,t.options.slidesToScroll),i=Math.ceil(t.slideCount/n);if(i<2)return;const s=Math.floor(t.currentSlide/n)+1;e.textContent="",window.setTimeout(()=>{e.textContent=`Slide ${s} of ${i}`},50)}onReInitHandler=e=>{this.onBeforeSlideChangeHandler(e),this.syncClonedSlides(),this.updateSlideStateAttributes()};updateSlideStateAttributes(){if(!this.$slickContainer)return;this.$slickContainer.find("calendar-event").each((t,n)=>{n.removeAttribute("data-current"),n.removeAttribute("data-last-active")}),this.$slickContainer.find(".slick-slide.slick-current calendar-event").each((t,n)=>{n.setAttribute("data-current","")}),this.$slickContainer.find(".slick-slide.slick-active").last().find("calendar-event").each((t,n)=>{n.setAttribute("data-last-active","")})}getCalendarStyle(){return this.eventSliderConfig.sliderConfiguration===o.MEAL_EVENTS_GRID?"grid":void 0}getCalendarType(){return this.eventSliderConfig.isMealCalendar?"meal":"event"}syncClonedSlides(){this.$slickContainer&&this.$slickContainer.find(".slick-cloned calendar-event").each((e,t)=>{const n=t.getAttribute("data-slide-index");if(!n)return;const i=this.$slickContainer.find(`.slick-slide:not(.slick-cloned) calendar-event[data-slide-index="${n}"]`).get(0);i?.shadowRoot&&t.shadowRoot&&(t.shadowRoot.innerHTML=i.shadowRoot.innerHTML,t.shadowRoot.querySelectorAll("a").forEach(s=>{s.setAttribute("tabindex","-1")}))})}}class r extends HTMLElement{pageUrl=null;statusContainer;fbWidget=null;fallbackLink;resizeTimeout=null;boundOnWindowResize;widgetObserver=null;static sdkLoaded=!1;static sdkLoading=!1;static sdkCallbacks=[];static FB_SDK_VERSION="v24.0";constructor(){super(),this.className="facebook-page-container",this.setAttribute("role","region"),this.setAttribute("aria-label","Facebook page feed"),this.statusContainer=document.createElement("div"),this.statusContainer.className="facebook-page-status",this.appendChild(this.statusContainer),this.fallbackLink=document.createElement("a"),this.fallbackLink.className="sr-only sr-only-focusable",this.fallbackLink.target="_blank",this.fallbackLink.rel="noopener noreferrer",this.fallbackLink.textContent="View on Facebook (opens in new tab)",this.appendChild(this.fallbackLink),this.boundOnWindowResize=this.onWindowResize.bind(this)}connectedCallback(){this.loadFacebookSDK(()=>{this.pageUrl&&this.loadPage()})}static get observedAttributes(){return["page-url"]}attributeChangedCallback(e,t,n){e!=="page-url"||n===t||(this.pageUrl=n,this.fallbackLink&&(this.fallbackLink.href=n??"",this.fallbackLink.hidden=!n,this.fallbackLink.textContent=`View ${r.pageHandleFromUrl(n)} on Facebook (opens in new tab)`),r.sdkLoaded&&this.loadPage())}disconnectedCallback(){this.widgetObserver?.disconnect(),this.widgetObserver=null,this.fbWidget&&this.fbWidget.parentNode===this&&(this.removeChild(this.fbWidget),this.fbWidget=null),this.statusContainer&&this.statusContainer.parentNode===this&&this.removeChild(this.statusContainer),this.fallbackLink&&this.fallbackLink.parentNode===this&&this.removeChild(this.fallbackLink),window.removeEventListener("resize",this.boundOnWindowResize),this.resizeTimeout&&(clearTimeout(this.resizeTimeout),this.resizeTimeout=null)}onWindowResize(){this.resizeTimeout&&clearTimeout(this.resizeTimeout);const e=Math.max(this.fbWidget?.clientHeight??0,530);this.resizeTimeout=setTimeout(()=>{this.fbWidget&&(window?.FB?.XFBML?.parse(),this.fbWidget.style.minHeight=`${e}px`)},800)}renderFacebookRootElement(){const e=document.createElement("div");e.id="fb-root",document.body.appendChild(e)}generateFacebookSdkScriptElement(e){const t=document.createElement("script");return t.src=`https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=${r.FB_SDK_VERSION}`,t.async=!0,t.defer=!0,t.crossOrigin="anonymous",t.onerror=e,t}generateBlockquoteElement(e){const t=document.createElement("blockquote");t.setAttribute("cite",e),t.className="fb-xfbml-parse-ignore";const n=document.createElement("a");return n.href=e,n.textContent="Facebook",t.appendChild(n),t}static pageHandleFromUrl(e){if(!e)return"this page";try{return new URL(e).pathname.replace(/\/$/,"").split("/").filter(
273Boolean).pop()??"this page"}catch{return"this page"}}loadFacebookSDK(e){if(r.sdkLoaded){e();return}if(r.sdkCallbacks.push(e),r.sdkLoading)return;r.sdkLoading=!0,document.getElementById("fb-root")||this.renderFacebookRootElement(),window.fbAsyncInit=()=>{try{window.FB?.init({xfbml:!0,version:r.FB_SDK_VERSION}),r.sdkLoaded=!0}catch{r.sdkLoaded=!1}finally{r.sdkLoading=!1,r.sdkCallbacks.forEach(i=>i()),r.sdkCallbacks=[]}};const t=this.generateFacebookSdkScriptElement(()=>{r.sdkLoading=!1,this.statusContainer.innerHTML="Failed to load Facebook SDK."}),n=document.getElementsByTagName("script")[0];n&&n.parentNode?n.parentNode.insertBefore(t,n):document.head.appendChild(t),window.addEventListener("resize",this.boundOnWindowResize)}loadPage(){if(!this.pageUrl){this.statusContainer.innerHTML="No Facebook page URL provided.";return}if(!r.sdkLoaded){this.statusContainer.innerHTML="Waiting for Facebook SDK...";return}this.statusContainer.innerHTML="Loading Facebook page...",this.fbWidget&&this.fbWidget.parentNode===this&&this.removeChild(this.fbWidget),this.fbWidget=document.createElement("div"),this.fbWidget.className="fb-page",this.fbWidget.setAttribute("aria-hidden","true"),this.fbWidget.setAttribute("data-href",this.pageUrl),this.fbWidget.setAttribute("data-tabs","timeline"),this.fbWidget.setAttribute("data-width","500"),this.fbWidget.setAttribute("data-height","530"),this.fbWidget.setAttribute("data-small-header","false"),this.fbWidget.setAttribute("data-adapt-container-width","true"),this.fbWidget.setAttribute("data-hide-cover","true"),this.fbWidget.setAttribute("data-show-facepile","true"),this.fbWidget.setAttribute("data-lazy","true");const e=this.generateBlockquoteElement(this.pageUrl);this.fbWidget.appendChild(e),this.appendChild(this.fbWidget),this.statusContainer.innerHTML="",this.widgetObserver?.disconnect(),this.widgetObserver=new MutationObserver(()=>{const t=this.fbWidget?.querySelectorAll("iframe");t?.length&&(t.forEach(n=>n.setAttribute("tabindex","-1")),this.widgetObserver?.disconnect(),this.widgetObserver=null)}),this.widgetObserver.observe(this.fbWidget,{childList:!0,subtree:!0}),window.FB?window.FB.XFBML.parse(this):console.error("window.FB is not available")}}customElements.get("facebook-page")||customElements.define("facebook-page",r);const W=new M,_=new Map,w=new Map,$=a=>w.get(a.toString())??null,H={[c.FOUR_EVENTS]:"calendar-events-style-four-events",[c.SIX_EVENTS]:"calendar-events-style-six-events",[c.FOUR_EVENTS_FULL_CALENDAR]:"calendar-events-style-calendar-and-events",[c.FOUR_EVENTS_FACEBOOK_FEED]:"calendar-events-style-facebook-and-events",[c.FULL_CALENDAR]:"calendar-events-style-full-calendar",[c.GRID]:"calendar-events-style-grid"},P={[c.GRID]:{default:o.MEAL_EVENTS_GRID},[c.FOUR_EVENTS]:{default:o.FOUR_EVENTS,stacked:o.FOUR_EVENTS_STACKED},[c.SIX_EVENTS]:{default:o.SIX_EVENTS,stacked:o.SIX_EVENTS_STACKED},[c.FOUR_EVENTS_FACEBOOK_FEED]:{default:o.FOUR_EVENTS_FACEBOOK_FEED},[c.FOUR_EVENTS_FULL_CALENDAR]:{default:o.FOUR_EVENTS_FULL_CALENDAR}},Y=[o.FOUR_EVENTS,o.MEAL_EVENTS_GRID],q={[b.RECTANGLE]:"rectangle",[b.CIRCLE]:"circle"},j=a=>H[a]??"",K=(a,e)=>{const t=P[a];return t?e&&t.stacked?t.stacked:t.default:null},G=a=>a&&Y.includes(a)?"stacked":"inline",X=(a,e)=>{const t=document.querySelector(`script[type="application/json"][data-view-data-events-sliders="${e}"]`),n=t?Q(t):null;if(!n)return null;w.set(e.toString(),n),t?.remove(),J(a,n),Z(a.find(".ss-component-content"),n);const i=a.find(".calendar-events-view-container");return i.length>0&&ee(i,n),Object.fromEntries(Object.entries(n).filter(([s])=>s.startsWith("--ss-calendar-events-")))},Q=a=>{if(!a||!a.textContent)return null;try{const e=R.safeParse(JSON.parse(a.textContent));return e.success?e.data:(console.error("Invalid view data events sliders:",e.error,e),null)}catch(e){return console.error("Error parsing view data events sliders:",e),null}},J=(a,e)=>{e.editable&&a.addClass("editme"),e.isStackItemVisible||a.addClass("ss-hidden-component"),e.hasBackgroundBreakout&&a.addClass("break-out"),e.hasStackBackground&&a.addClass("ss-has-bg"),e.calendarStyle===c.GRID&&(e.hasGridTopBg&&a.addClass("ss-has-top-bg"),e.hasGridBottomBg&&a.addClass("ss-has-bottom-bg"))},Z=(a,e)=>
273{e.hasBackgroundBreakout&&!e.hasContentBreakout&&a.addClass("background-break-out"),!e.hasBackgroundBreakout&&e.hasContentBreakout&&a.addClass("break-out")},ee=(a,e)=>{e.hasComponentBody&&e.componentBodyPosition===C.LEFT&&a.addClass("calendar-events-style-component-body-left"),e.hasComponentBody&&e.componentBodyPosition===C.RIGHT&&a.addClass("calendar-events-style-component-body-right"),e.isStackItemVisible||a.addClass("stack_off"),e.calendarDateShape===b.RECTANGLE&&a.addClass("calendar-events-shape-rectangle"),e.calendarDateShape===b.CIRCLE&&a.addClass("calendar-events-shape-circle"),a.addClass(j(e.calendarStyle)),e.calendarStyle===c.GRID&&a.attr("data-calendar-style","grid")},te=(a,e)=>{const t=K(e.calendarStyle,e.hasComponentBody);if(!t)return;const n={calendarId:e.calendarApiID,cssVariables:_.get(e.itemID.toString())||{},sliderConfiguration:t,displayEvents:e.numberOfEvents,originationDate:new Date,layoutMode:G(t),eventDayShape:q[e.calendarDateShape]??"rectangle",isMealCalendar:e.isMealCalendar??!1};new B(a,W,n).initialize()},ne=(a,e)=>{if(!e.facebookFeedURL)return;const t=new r;t.setAttribute("page-url",e.facebookFeedURL),v(a).append(t)},ae=async(a,e)=>{const{default:t}=await I(async()=>{const{default:n}=await import("./FullCalendarView-B0lCpUDU.js");return{default:n}},__vite__mapDeps([0,1,2,3,4,5,6,7,8]));new t(a,e.calendarApiID,e.standaloneCalendar??!1,e["--ss-calendar-events-calendar-link-background-color"]??null)};document.querySelectorAll(".ss-calendar-events__v2").forEach(a=>{const e=v(a),t=e.data("stackitem-id");if(!t)return;const n=X(e,t);n&&(e.css(n),_.set(t.toString(),n));const i=$(t),s=e.find(".calendar-events-view-container").get(0);s&&i&&te(s,i);const d=e.find(".stack-item-events-facebook-container").get(0);d&&i&&ne(d,i);const l=e.find(".full-calendar-container").get(0);l&&i&&ae(l,i).catch(console.error)});
274//# sourceMappingURL=CalendarEventsComponent-DL0-GWdQ.js.map

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.