{"version":3,"file":"app.js","sources":["../src/scripts/elements/Days.js","../src/scripts/elements/Months.js","../src/scripts/helpers/FormatDate.js","../src/scripts/helpers/Labels.js","../src/scripts/helpers/PerformanceLink.js","../src/scripts/helpers/RenderLegend.js","../src/scripts/components/Weekly.js","../src/scripts/elements/MonthlyDates.js","../src/scripts/elements/OffsetDays.js","../src/scripts/elements/Navigation.js","../src/scripts/elements/HeadFoot.js","../src/scripts/components/Monthly.js","../src/scripts/components/TwoMonth.js","../src/app.js"],"sourcesContent":["\nexport const daysOfTheWeek = (type) => {\n let days;\n\n switch (type) {\n case 'ddd':\n days = [\n 'Sun',\n 'Mon',\n 'Tue',\n 'Wed',\n 'Thu',\n 'Fri',\n 'Sat',\n ];\n break;\n case 'dd':\n days = [\n 'Su',\n 'M',\n 'Tu',\n 'W',\n 'Th',\n 'F',\n 'Sa',\n ];\n break;\n case 'd':\n days = [\n 'S',\n 'M',\n 'T',\n 'W',\n 'T',\n 'F',\n 'S',\n ];\n break;\n default:\n days = [\n 'Sunday',\n 'Monday',\n 'Tuesday',\n 'Wednesday',\n 'Thursday',\n 'Friday',\n 'Saturday',\n ];\n break;\n }\n\n return days;\n\n}","\nexport const months = (type) => {\n let months;\n\n switch (type) {\n case 'mmm':\n months = [\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec'\n ];\n break;\n case 'm':\n months = [\n 'J',\n 'F',\n 'M',\n 'A',\n 'M',\n 'J',\n 'J',\n 'A',\n 'S',\n 'O',\n 'N',\n 'D'\n ];\n break;\n default:\n months = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December'\n ];\n break;\n }\n\n return months;\n\n}","import { months } from \"../elements/Months\";\n\nexport const renderFormattedDate = (theDate, dateFormat) => {\n\tlet j = theDate.getDate();\n\tlet m = theDate.getMonth() + 1; // because January is 0 in the array\n\n\tlet formattedDate = \"\";\n\n\tswitch (dateFormat) {\n\t\tcase \"month_day\":\n\t\t\tvar monthnames = months('mmm');\n\t\t\tformattedDate = monthnames[m] + \" \" + j;\n\t\t\tbreak;\n\t\tcase \"month_day_dash\":\n\t\t\tformattedDate = m + \"/\" + j;\n\t\t\tbreak;\n\t\tcase \"month_day_dot\":\n\t\t\tformattedDate = m + \".\" + j;\n\t\t\tbreak;\n\t\tdefault: // case \"day\"\n\t\t\tformattedDate = j;\n\t\t\tbreak;\n\t}\n\n\treturn formattedDate;\n}\n\nexport const renderFormattedMonth = (theDate) => {\n\tlet formatMonthName = limelight.data.monthname_date_format;\n\tconst monthNumber = parseInt(theDate.split('-')[1]); // -1 to coincide with month array\n\n\tlet formatDate = \"\";\n\n\tswitch (formatMonthName) {\n\t\tcase \"month_full\":\n\t\t\tformatDate = `${months()[monthNumber - 1]}`\n\t\t\tbreak;\n\t\tcase \"month_full_year\":\n\t\t\tformatDate = `${months()[monthNumber - 1]} ${theDate.split('-')[0]}`\n\t\t\tbreak;\n\t\tcase \"mon_year\":\n\t\t\tformatDate = `${months('mmm')[monthNumber - 1]} ${theDate.split('-')[0]}`\n\t\t\tbreak;\n\t\tdefault: // case \"mon\"\n\t\t\tformatDate = `${months('mmm')[monthNumber - 1]}`;\n\t\t\tbreak;\n\t}\n\n\treturn formatDate;\n}\n","/*\n * Generate the label slug, so everyone thinks it is the same.\n * @author Aaron Hodge Silver\n */\nexport const generateLabelSlug = (label) => {\n\tvar stringtouse;\n\tif (label.label_slug) {\n\t\tstringtouse = label.label_slug;\n\t} else if (label.label_title){\n\t\tstringtouse = label.label_title;\n\t} else {\n\t\tstringtouse = label;\n\t}\n\n\tstringtouse = stringtouse.replace(/[^a-zA-Z0-9\\s-]/g, '');\n\treturn stringtouse.toLowerCase().replace(/\\s+/g, '-');\n}\n\n/*\n * Decide which label-related classes belong on this performance.\n * @author Aaron Hodge Silver\n */\nexport const generateLabelClass = (perf) => {\n\tlet labelclass = '';\n\n\t// assigning labels based on remaining ticket numbers\n\tif (limelight.data.ticket_based_labels.length > 0 && perf.remaining_tickets.length > 0) {\n\t\t// Step 1: Sort the array by max_tickets_remaining (smallest first)\n\t\tlimelight.data.ticket_based_labels.sort((a, b) => parseInt(a.max_tickets_remaining) - parseInt(b.max_tickets_remaining));\n\n\t\t// Step 2: Find the first item with max_tickets_remaining less than remaining_tickets\n\t\tlet selectedLabel = limelight.data.ticket_based_labels.find(item => parseInt(item.max_tickets_remaining) > parseInt(perf.remaining_tickets));\n\t\tif (selectedLabel) {\n\t\t\t// console.log(perf.remaining_tickets + ' tickets is fewer tickets than this label\\'s max of ' + selectedLabel.max_tickets_remaining);\n\t\t\tlabelclass += ' event-time--' + generateLabelSlug(selectedLabel);\n\t\t}\n\t\t// if this performance doesn't get a tickets-based label, use the manual label\n\t} else if (perf.label.length > 0) {\n\t\tlabelclass += ' event-time--' + generateLabelSlug(perf.label);\n\t}\n\treturn labelclass;\n}\n\n/*\n * After the calendar has rendered, remove some labels from the legend.\n * Remove those that should only show if there's at least one matching performance, if there aren't any.\n * @author Aaron Hodge Silver\n */\nexport const removeLabels = () => {\n\tlet matchFilters = [];\n\n\tlimelight.data.labels.filter((item) => {\n\t\tif (item.display_legend == \"match\") {\n\t\t\tmatchFilters.push(item);\n\t\t\treturn;\n\t\t}\n\t\treturn;\n\t});\n\n\tmatchFilters.forEach((label) => {\n\t\tvar slug = generateLabelSlug(label);\n\n\t\tvar any_of_these = document.querySelector(\".event-time--\" + slug);\n\t\tif (!any_of_these) {\n\t\t\tvar labelsToRemove = document.querySelectorAll(\".calendar__legend-each-\" + slug);\n\t\t\tlabelsToRemove.forEach((element) => element.remove());\n\t\t}\n\t});\n}\n","import { generateLabelClass } from \"./Labels\";\n\n\nexport const dateIsDark = (thisDate, allShowPerformances) => {\n\tlet d = thisDate.getDate();\n\tlet m = thisDate.getMonth() + 1;\n\tlet y = thisDate.getFullYear();\n\n\tlet formattedMonth = m > 9 ? m : '0' + m;\n\tlet formattedDay = d > 9 ? d : '0' + d;\n\tlet performanceOperator = y + '-' + formattedMonth + '-' + formattedDay;\n\n\tvar dayIsDark = true;\n\n\tallShowPerformances.filter(showPerformance => {\n\t\tif (showPerformance.date === performanceOperator) {\n\t\t\tdayIsDark = false;\n\t\t}\n\t});\n\treturn dayIsDark;\n}\n\nexport const renderPerformanceLink = (thisPerformance, allShowPerformances) => {\n\tlet performanceLink = '';\n\tlet selectedPerformances = [];\n\n\tlet d = thisPerformance.getDate();\n\tlet m = thisPerformance.getMonth() + 1;\n\tlet y = thisPerformance.getFullYear();\n\n\tlet formattedMonth = m > 9 ? m : '0' + m;\n\tlet formattedDay = d > 9 ? d : '0' + d;\n\tlet performanceOperator = y + '-' + formattedMonth + '-' + formattedDay;\n\n\tallShowPerformances.filter(showPerformance => {\n\t\tif (showPerformance.date === performanceOperator) {\n\t\t\tselectedPerformances.push(showPerformance);\n\t\t}\n\t});\n\n\tif (selectedPerformances && selectedPerformances.length > 0) {\n\n\t\tconst sorter = (a, b) => {\n\t\t\tlet first = a.time.split(':')[0];\n\t\t\tlet last = b.time.split(':')[0];\n\t\t\treturn first - last;\n\t\t};\n\n\t\tselectedPerformances.sort(sorter);\n\n\t\tfor (let index = 0; index < selectedPerformances.length; index++) {\n\n\t\t\tconst perf = selectedPerformances[index];\n\n\t\t\tif (perf.time && perf.url) {\n\n\t\t\t\tvar match = perf.time.match(/^(\\d+):(\\d{2})([ap]m)$/i);\n\n\t\t\t\t// Extracting components\n\t\t\t\tlet perfHour = match[1];\n\t\t\t\tlet perfMins = match[2];\n\t\t\t\tlet perfAMPM = match[3];\n\n\t\t\t\t// Appointed Classes\n\t\t\t\tlet performanceClasses = 'event-time';\n\t\t\t\tperformanceClasses += ' event-time--' + perf.date;\n\t\t\t\tperformanceClasses += generateLabelClass(perf);\n\n\t\t\t\tperformanceLink += `\n \n ${`${perfHour}` + `:${perfMins}` + `${perfAMPM}`}\n \n `;\n\n\t\t\t}\n\n\t\t}\n\t}\n\n\treturn performanceLink;\n\n}\n","import { generateLabelSlug } from \"./Labels\";\n\n/*\n * Create the HTML for the legend, with color-coded boxes.\n * @author Aaron Hodge Silver\n */\n\nexport const renderLegend = () => {\n\n\tlet calLegend = \"\";\n\tlet calStyle = \"\";\n\tlet legendLabels = [];\n\n\t// Ticket Amount-based labels\n\tif (limelight.data.ticket_based_labels) {\n\t\tlimelight.data.ticket_based_labels.filter((item) => {\n\t\t\tlegendLabels.push(item);\n\t\t\treturn;\n\t\t});\n\t}\n\t// Manually-managed labels\n\tif (limelight.data.labels) {\n\t\tlimelight.data.labels.filter((item) => {\n\t\t\tif (item.display_legend != \"never\") {\n\t\t\t\tlegendLabels.push(item);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treturn;\n\t\t});\n\t}\n\n\tif (legendLabels.length > 0) {\n\t\tcalLegend +=\n\t\t\t'
';\n\t\tcalStyle += '\";\n\t}\n\n\treturn calLegend + calStyle;\n}\n","\nimport { daysOfTheWeek } from \"../elements/Days\";\nimport { renderFormattedDate } from \"../helpers/FormatDate\";\nimport { renderPerformanceLink } from \"../helpers/PerformanceLink\";\nimport { renderLegend } from \"../helpers/RenderLegend\";\n\nexport const renderWeekly = (calendar) => {\n\n\tlet performances = limelight.performances;\n let calText = '';\n\tlet weeklyNumberDays = limelight.data.weekly_shown_days ?? 7;\n let todayDate = new Date();\n let startCustom = false;\n let weekday = daysOfTheWeek('ddd');\n\n // If user selects start date && before today\n let commence = todayDate <= startCustom ? startCustom : todayDate;\n let thisDay = new Date(commence);\n\n\t// Display the legend\n\tif (calendar.dataset.layout == 'legend_top') {\n\t\tcalText += `
${renderLegend()}
`;\n\t}\n\n // Generates weekday names\n calText += '
';\n\tcalText += '
';\n for (let i = thisDay.getDay(); i < thisDay.getDay() + 7; i++) {\n let the_day = i;\n if (the_day > 6) {\n the_day = the_day - 7;\n }\n calText += '
' + weekday[the_day] + '
';\n }\n calText += '
';\n\n // Generates Day\n\tcalText += '
';\n for (let j = 0; j < weeklyNumberDays; j++) {\n\n const newDate = new Date(thisDay);\n let thisRenderedDate = new Date( newDate.setDate(newDate.getDate() + j) );\t\t\n\n calText +=\n `
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t${renderPerformanceLink(thisRenderedDate, performances)}\n\t\t\t\t\t
\n\t\t\t\t
\n
`;\n }\n\n calText += ''; // end .grid and end .grid-container\n\n\t// Display the legend\n\tif (calendar.dataset.layout == 'legend_bottom') {\n\t\tcalText += ``;\n\t}\n\n calendar.innerHTML += calText; \n\n calText = '';\n\n}\n","import { renderFormattedDate } from \"../helpers/FormatDate\";\nimport { renderPerformanceLink } from \"../helpers/PerformanceLink\";\nimport { dateIsDark } from \"../helpers/PerformanceLink\";\n\nexport const monthlyDates = ( month, performances, today ) => {\n\n let yyyy = month.split('-')[0];\n let mm = month.split('-')[1];\n const daysInMonth = (year, month) => new Date(year, month, 0).getDate();\n\n let daysThisMonth = daysInMonth(yyyy, mm);\n let dayBlocks = '';\n\n // Loop to render blocks\n for (let index = 0; index < daysThisMonth; index++) {\n\n const numberedDay = index + 1;\n const fullPerformanceDate = yyyy + '-' + mm + '-' + (numberedDay > 9 ? numberedDay : '0' + numberedDay);\n let tempDate = new Date( Date.UTC(yyyy, mm -1, numberedDay) );\n\t\tconst thisRenderedDate = new Date(tempDate.getTime() + (tempDate.getTimezoneOffset() * 60000)); // this is how we correct for the time zone problem April 1, 2024\n\t\tthisRenderedDate.setHours(23);\n\t\tthisRenderedDate.setMinutes(59);\n\t\tthisRenderedDate.setSeconds(59);\n\n\t\t// add classes\n\t\tvar dayboxclasses = 'day-box';\n\t\tif (thisRenderedDate < today) {\n\t\t\tdayboxclasses += ' day-box-past';\n\t\t} else if (dateIsDark(thisRenderedDate, performances)) {\n\t\t\tdayboxclasses += ' day-box-dark';\n\t\t}\n \n dayBlocks += `
`;\n dayBlocks += `
${ renderFormattedDate(thisRenderedDate, limelight.data.monthly_date_format) }
`;\n if(thisRenderedDate >= today) {\n dayBlocks += `
${ renderPerformanceLink(thisRenderedDate, performances )}
`;\n } else {\n dayBlocks += `
`;\n\n }\n dayBlocks += `
`;\n }\n\n return dayBlocks;\n\n}","export const offsetDays = ( month, direction = 'before' ) => {\n\n if(direction === 'before') {\n let offset = new Date(month.split('-')[0], parseInt(month.split('-')[1]-1), 1).getDay();\n let before = ''; // setup blank days before first day of month\n for (var f = 0; f < offset; f++) {\n before += `
`;\n }\n return before;\n }\n\n if(direction === 'after') {\n let totalDays = new Date(month.split('-')[0], parseInt(month.split('-')[1]), 1).getDate();\n\t\tlet offset = new Date(month.split('-')[0], parseInt(month.split('-')[1]),totalDays).getDay();\n let after = ''; // setup blank days after last day of month\n for (var t = offset; t > 0 && t < 7; t++) {\n after += `
`;\n }\n return after;\n }\n\n}","const tapAction = window.ontouchstart === null ? 'touchstart' : 'click';\n\nexport const doNavigation = (cal, vp) => {\n\n let calendar_months = cal.querySelectorAll('.calendar__month');\n let viewDesktop = 2; // Amount of cal per view on desktop\n let viewMobile = 1; // Amount of cal per view on mobile\n let currentView = viewMobile;\n\n // Add Class for 1 month view\n cal.classList.add('calendar--1m');\n if(vp && window.innerWidth > vp) {\n currentView = viewDesktop;\n cal.classList.remove('calendar--1m');\n }\n \n if(calendar_months && calendar_months.length > currentView) {\n for (let index = 0; index < calendar_months.length; index++) {\n const calendar_month = calendar_months[index];\n const prev_month = index - 1;\n const next_month = index + 1;\n \n let isFirst = prev_month <= -1;\n let isLast = next_month === calendar_months.length ;\n\n let prevButton = calendar_month.querySelector('.calendar__nav--prev');\n let nextButton = calendar_month.querySelector('.calendar__nav--next');\n\n prevButton.disabled = false;\n nextButton.disabled = false;\n\n isFirst ? prevButton.disabled = true : null;\n isLast ? nextButton.disabled = true : null;\n\n prevButton.addEventListener( tapAction, () => {\n // Resets and remove all active classes\n calendar_months.forEach((cm) => {\n cm.classList.remove('calendar__month--active');\n });\n\n // Adds active classes\n calendar_months[prev_month].classList.add('calendar__month--active');\n\n if(currentView > 1) {\n calendar_months[prev_month + 1].classList.add('calendar__month--active');\n }\n\t\t\t\tcleanup_first_second()\n });\n \n nextButton.addEventListener( tapAction, () => {\n // Resets and remove all active classes\n calendar_months.forEach((cm) => {\n cm.classList.remove('calendar__month--active');\n });\n\n if(calendar_months[next_month]) {\n calendar_months[next_month].classList.add('calendar__month--active');\n }\n\n if(currentView > 1) {\n calendar_months[next_month - 1].classList.add('calendar__month--active');\n }\n\t\t\t\tcleanup_first_second();\n });\n\n }\n }\n};\n\nexport const cleanup_first_second = () => {\n\t// remove all first/second\n\t$('.calendar--twomonth .calendar__month').removeClass('first').removeClass('second');\n\t// identify first and second\n\t$('.calendar--twomonth .calendar__month--active:first').addClass('first');\n\t$('.calendar--twomonth .calendar__month--active:eq(1)').addClass('second');\n};","import { renderLegend } from \"../helpers/RenderLegend\";\nimport { renderFormattedMonth } from \"../helpers/FormatDate\";\n\nexport const renderHeader = (month, calendar) => {\n let headHTML = ``;\n\n headHTML += `
`;\n headHTML += `\t`;\n\t// Display the legend\n\tif (calendar.dataset.type !== 'twomonth' && calendar.dataset.layout == 'legend_top') {\n\t\theadHTML += renderLegend();\n\t}\n headHTML += `
`;\n\n return headHTML;\n}\n\nexport const renderFooter = (calendar) => {\n\tlet footHTML = ``;\n\t// Display the legend\n\tif (calendar.dataset.layout == 'legend_bottom') {\n\t\tfootHTML += `
`;\n\t\tfootHTML += renderLegend();\n\t\tfootHTML += `
`;\n\t}\n\n return footHTML;\n}\n","\nimport { daysOfTheWeek } from \"../elements/Days\";\nimport { monthlyDates } from \"../elements/MonthlyDates\";\nimport { offsetDays } from \"../elements/OffsetDays\";\nimport { doNavigation } from \"../elements/Navigation\";\nimport { renderHeader, renderFooter } from \"../elements/HeadFoot\";\n\nlet\n\tmonthly_view_count = 1,\n\tmonthlyHTML = '',\n\tdd_html = '',\n\ttoday = new Date(),\n\tjoinPerformancesByYearMonth = [];\n\nconst tapAction = window.ontouchstart === null ? 'touchstart' : 'click';\n\nexport const renderMonthly = (calendar) => {\n\tlet performances = limelight.performances;\n\t// Loops all performances\n\tfor (let di = 0; di < performances.length; di++) {\n\t\tconst todayYear = today.getFullYear();\n\t\tconst todayMonthRaw = today.getMonth() + 1;\n\t\tconst todayMonth = todayMonthRaw > 9 ? todayMonthRaw : '0' + todayMonthRaw;\n\t\tconst todayOperator = todayYear + '-' + todayMonth;\n\n\t\tlet performanceYear = performances[di].date.split('-')[0];\n\t\tlet performanceMonth = performances[di].date.split('-')[1];\n\t\tlet performanceMonthYear = performanceYear + '-' + performanceMonth;\n\n\t\tjoinPerformancesByYearMonth.indexOf(performanceMonthYear) === -1 && todayOperator <= performanceMonthYear ? joinPerformancesByYearMonth.push(performanceMonthYear) : null;\n\t}\n\n\t// Reverse order of peformances by month\n\tjoinPerformancesByYearMonth.reverse();\n\n\tdaysOfTheWeek('ddd').forEach(d => {\n\t\tif (d) {\n\t\t\tdd_html += `
${d}
`;\n\t\t}\n\t});\n\n\tcalendar.innerHTML = '';\n\n\t// Render Months\n\tfor (let index = 0; index < joinPerformancesByYearMonth.length; index++) {\n\n\t\tconst monthcount = index + 1;\n\t\tconst month = joinPerformancesByYearMonth[index];\n\t\tlet isActive = monthcount > monthly_view_count ? false : true;\n\t\t// if a starting month has been specified, decide based on that\n\t\tif (calendar.dataset.start_month) {\n\t\t\tisActive = calendar.dataset.start_month == month ? true : false;\n\t\t}\n\n\t\tmonthlyHTML += `\n
\n ${renderHeader(month, calendar)}\n
\n
\n ${dd_html ?? ''}\n
\n
\n ${offsetDays(month, 'before')}\n ${monthlyDates(month, performances, today)}\n ${offsetDays(month, 'after')}\n
\n
\n ${renderFooter(calendar)}\n
`\n\t}\n\n\tcalendar.innerHTML = monthlyHTML;\n\n\tdoNavigation(calendar, null);\n\n}","import { daysOfTheWeek } from \"../elements/Days\";\nimport { monthlyDates } from \"../elements/MonthlyDates\";\nimport { offsetDays } from \"../elements/OffsetDays\";\nimport { doNavigation } from \"../elements/Navigation\";\nimport { renderLegend } from \"../helpers/RenderLegend\";\nimport { renderHeader, renderFooter } from \"../elements/HeadFoot\";\nimport { cleanup_first_second } from \"../elements/Navigation\";\n\nlet\n\tscreenSizeInit = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),\n\tmonthly_view_count,\n\tviewBreakpoint = 768,\n\tmonthlyHTML = '',\n\tdd_html = '',\n\ttoday = new Date(),\n\tjoinPerformancesByYearMonth = [];\n\nconst tapAction = window.ontouchstart === null ? 'touchstart' : 'click';\n\nexport const renderTwoMonth = (calendar) => {\n\n\t// mobile = 0; desktop = 1;\n\twindow.innerWidth > viewBreakpoint ? monthly_view_count = 1 : monthly_view_count = 0;\n\tcreateTwoMonthCalender(calendar);\n\n\t// Rerun on resize \n\t// window.addEventListener('resize', () => {\n\t// \tif (!screenSizeInit) {\n\t// \t\twindow.innerWidth > viewBreakpoint ? monthly_view_count = 1 : monthly_view_count = 0;\n\t// \t}\n\t// });\n\n}\n\nconst createTwoMonthCalender = (calendar) => {\n\tlet performances = limelight.performances;\n\n\t/* ----------------------*/\n\t/** SET UP PERFORMANCES **/\n\n\t// Loop all perforamces\n\tfor (let di = 0; di < performances.length; di++) {\n\t\tconst todayYear = today.getFullYear();\n\t\tconst todayMonthRaw = today.getMonth() + 1;\n\t\tconst todayMonth = todayMonthRaw > 9 ? todayMonthRaw : '0' + todayMonthRaw;\n\t\tconst todayOperator = todayYear + '-' + todayMonth;\n\n\t\tlet performanceYear = performances[di].date.split('-')[0];\n\t\tlet performanceMonth = performances[di].date.split('-')[1];\n\t\tlet performanceMonthYear = performanceYear + '-' + performanceMonth;\n\n\t\t// Calculates performances by month\n\t\tjoinPerformancesByYearMonth.indexOf(performanceMonthYear) === -1 && todayOperator <= performanceMonthYear ? joinPerformancesByYearMonth.push(performanceMonthYear) : null;\n\t}\n\n\t// Reverse order of peformances by month\n\tjoinPerformancesByYearMonth.reverse();\n\n\t/* ----------------------------------*/\n\t/** PREPARE HTML FOR ALL THE MONTHS **/\n\n\tdaysOfTheWeek('ddd').forEach(d => {\n\t\tif (d) {\n\t\t\tdd_html += `
${d}
`;\n\t\t}\n\t});\n\n\t// Render Month into a string\n\tfor (let index = 0; index < joinPerformancesByYearMonth.length; index++) {\n\n\t\tconst month = joinPerformancesByYearMonth[index];\n\t\tlet isActive;\n\n\t\t// if a starting month has been specified, decide \"active\" based on that (this month plus next)\n\t\tif (calendar.dataset.start_month) {\n\t\t\tlet [year, tempmonth] = month.split('-').map(Number);\n\t\t\tif (tempmonth === 1) {\n\t\t\t\tyear -= 1;\n\t\t\t\ttempmonth = 12;\n\t\t\t} else {\n\t\t\t\ttempmonth -= 1;\n\t\t\t}\n\t\t\tconst prevMonth = year + '-' + (tempmonth.toString().padStart(2, '0'));\n\n\t\t\t// is this the start month? OR was the previous month the start month (and we're in desktop width)?\n\t\t\tif (calendar.dataset.start_month == month || (window.innerWidth > viewBreakpoint && calendar.dataset.start_month == prevMonth)) {\n\t\t\t\tisActive = true;\n\t\t\t} else {\n\t\t\t\tisActive = false;\n\t\t\t}\n\t\t} else {\n\t\t\tisActive = index > monthly_view_count ? false : true;\n\t\t}\n\n\t\tmonthlyHTML += `\n
\n ${renderHeader(month, calendar)}\n
\n
\n ${dd_html ?? ''}\n
\n
\n ${offsetDays(month, 'before')}\n ${monthlyDates(month, performances, today)}\n ${offsetDays(month, 'after')}\n
\n
\n
`\n\t}\n\n\t/* ----------------------*/\n\t/** PUT ALL THE HTML TOGETHER **/\n\n\tcalendar.innerHTML = '';\n\n\t// Lengend at the top?\n\tif (calendar.dataset.layout == 'legend_top') {\n\t\tcalendar.innerHTML += renderLegend();\n\t}\n\n\tcalendar.innerHTML += '
' + monthlyHTML + '
';\n\tcalendar.innerHTML += renderFooter(calendar);\n\n\tdoNavigation(calendar, viewBreakpoint);\n\tcleanup_first_second();\n}\n","import { renderWeekly } from \"./scripts/components/Weekly\";\nimport { renderMonthly } from \"./scripts/components/Monthly\";\nimport { renderTwoMonth } from \"./scripts/components/TwoMonth\";\nimport { removeLabels } from \"./scripts/helpers/Labels\";\n\nwindow.addEventListener(\"DOMContentLoaded\", (e) => {\n\t$ = jQuery.noConflict();\n\n\tconst calendars = document.querySelectorAll('.rpm-calendar .calendar');\n\n\tif( calendars && calendars.length > 0 ) {\n\t\tlet performances = limelight.performances;\n\t\tif( performances && performances.length ) {\n\t\t\ttry {\n\t\t\t\tcalendars.forEach(calendar => {\n\t\t\t\t\tswitch (calendar.dataset.type) {\n\t\t\t\t\t\tcase 'weekly':\n\t\t\t\t\t\t\trenderWeekly(calendar);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'twomonth':\n\t\t\t\t\t\t\trenderTwoMonth(calendar);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\trenderMonthly(calendar);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tremoveLabels();\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(error);\n\t\t\t}\n\t\t} else {\n\t\t\t// console.log('No performances present.');\n\t\t}\n\t} else {\n\t\t// console.log('No calendars present.');\n\t}\n\n});\n"],"names":["daysOfTheWeek","type","days","months","renderFormattedDate","theDate","dateFormat","j","getDate","m","getMonth","formattedDate","monthnames","renderFormattedMonth","formatMonthName","limelight","data","monthname_date_format","monthNumber","parseInt","split","formatDate","generateLabelSlug","label","stringtouse","label_slug","label_title","replace","toLowerCase","generateLabelClass","perf","labelclass","ticket_based_labels","length","remaining_tickets","sort","a","b","max_tickets_remaining","selectedLabel","find","item","removeLabels","matchFilters","labels","filter","display_legend","push","forEach","slug","any_of_these","document","querySelector","labelsToRemove","querySelectorAll","element","remove","dateIsDark","thisDate","allShowPerformances","d","y","getFullYear","formattedMonth","formattedDay","performanceOperator","dayIsDark","showPerformance","date","renderPerformanceLink","thisPerformance","performanceLink","selectedPerformances","sorter","first","time","last","index","url","match","perfHour","perfMins","perfAMPM","performanceClasses","renderLegend","calLegend","calStyle","legendLabels","hex","label_color","slice","renderWeekly","calendar","performances","calText","weeklyNumberDays","weekly_shown_days","todayDate","Date","startCustom","weekday","commence","thisDay","dataset","layout","i","getDay","the_day","newDate","thisRenderedDate","setDate","weekly_date_format","innerHTML","monthlyDates","month","today","yyyy","mm","daysInMonth","year","daysThisMonth","dayBlocks","numberedDay","fullPerformanceDate","tempDate","UTC","getTime","getTimezoneOffset","setHours","setMinutes","setSeconds","dayboxclasses","monthly_date_format","offsetDays","direction","offset","before","f","totalDays","after","t","tapAction","window","ontouchstart","doNavigation","cal","vp","calendar_months","viewDesktop","viewMobile","currentView","classList","add","innerWidth","calendar_month","prev_month","next_month","isFirst","isLast","prevButton","nextButton","disabled","addEventListener","cm","cleanup_first_second","$","removeClass","addClass","renderHeader","headHTML","renderFooter","footHTML","monthly_view_count","monthlyHTML","dd_html","joinPerformancesByYearMonth","renderMonthly","di","todayYear","todayMonthRaw","todayMonth","todayOperator","performanceYear","performanceMonth","performanceMonthYear","indexOf","reverse","monthcount","isActive","start_month","test","navigator","userAgent","viewBreakpoint","renderTwoMonth","createTwoMonthCalender","tempmonth","map","Number","prevMonth","toString","padStart","e","jQuery","noConflict","calendars","error","console"],"mappings":"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"}