{"version":3,"file":"rnaevents.bundle.js","mappings":";sFAAAA,EAAOC,QAAU,ujiFCIjBD,EAAOC,QAAU,SAASC,GACzB,SAASC,EAAIC,GACQ,oBAAZC,UACJA,QAAQD,OAASC,QAAQF,KAAK,kBAAmBC,EACtD,CAOA,IAC2B,oBAAfE,YAJmB,oBAAhBC,aAA2D,oBAArBC,iBAKnDF,WAAWJ,GACe,oBAATO,KACjBA,KAAKC,KAAK,KAAMR,GAEhBC,EAAI,wCAEN,CAAE,MAAOC,GACRD,EAAIC,EACL,CACD,ICzBIO,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAab,QAGrB,IAAID,EAASW,EAAyBE,GAAY,CAGjDZ,QAAS,CAAC,GAOX,OAHAe,EAAoBH,GAAUb,EAAQA,EAAOC,QAASW,GAG/CZ,EAAOC,OACf,CCtBA,EAAQ,4CAAR,CAAmI,EAAQ","sources":["webpack://RNAEKka/./wwwroot/scripts/rna-events.js","webpack://RNAEKka/./node_modules/script-loader/addScript.js","webpack://RNAEKka/webpack/bootstrap","webpack://RNAEKka/./wwwroot/scripts/rna-events.js?6068"],"sourcesContent":["module.exports = \"var rnaEventsController = (function () {\\r\\n let loadMoreCount = 1;\\r\\n let skipSize = 0;\\r\\n const takeSize = 9;\\r\\n let selectedCategories = [];\\r\\n let selectedCategoriesTitle = [];\\r\\n let selectedDates = [];\\r\\n\\r\\n let myEkkaItems;\\r\\n let type;\\r\\n let priceValue;\\r\\n let sortValue;\\r\\n let timeTagValue;\\r\\n let locationValue;\\r\\n let searchValue;\\r\\n let destinationPages;\\r\\n\\r\\n const typeMapping = {\\r\\n 'rides': 3,\\r\\n 'showbag': 2,\\r\\n 'showguide': 1\\r\\n };\\r\\n\\r\\n function bindEvents() {\\r\\n $('#events-load-more').on('click', function () {\\r\\n skipSize = $('.showme-container .showme-card').length;\\r\\n getSelectedFilterValues();\\r\\n loadMoreCount++;\\r\\n getEvents(timeTagValue, sortValue, priceValue, locationValue, searchValue);\\r\\n });\\r\\n\\r\\n $('.modal-showme .modal-close button').on('click', function () {\\r\\n $('.modal-showme').css('display', 'none');\\r\\n $('.modal-showme-wrapper').empty();\\r\\n\\r\\n var currentUrl = new URL(window.location.href);\\r\\n\\r\\n var baseUrl = currentUrl.origin + currentUrl.pathname;\\r\\n\\r\\n history.replaceState({}, document.title, baseUrl);\\r\\n });\\r\\n\\r\\n $('#btnFilterShowme').off().on('click', function () {\\r\\n getSelectedFilterValues();\\r\\n skipSize = 0;\\r\\n $(\\\".showme-container\\\").empty();\\r\\n getEvents(timeTagValue, sortValue, priceValue, locationValue, searchValue);\\r\\n });\\r\\n\\r\\n $('#btnRemoveFilters').off().on('click', function () {\\r\\n resetFilters(null);\\r\\n $(\\\".showme-container\\\").empty();\\r\\n getEvents();\\r\\n });\\r\\n\\r\\n $('.showme-pages-dropdown .dropdown-item').off().on('click', function (e) {\\r\\n e.stopPropagation();\\r\\n e.preventDefault();\\r\\n\\r\\n const url = $(this).attr(\\\"data-value\\\");\\r\\n\\r\\n window.location.href = url;\\r\\n });\\r\\n }\\r\\n\\r\\n function getSelectedFilterValues() {\\r\\n priceValue = $(\\\"#priceFilterDropdown\\\").attr(\\\"data-value\\\");\\r\\n sortValue = $(\\\"#sortFilterDropdown\\\").attr(\\\"data-value\\\");\\r\\n timeTagValue = $(\\\"#hoursFilterDropdown\\\").attr(\\\"data-value\\\");\\r\\n locationValue = $(\\\"#locationFilterDropdown\\\").attr(\\\"data-value\\\");\\r\\n searchValue = $(\\\".showme-search-input\\\").val();\\r\\n }\\r\\n\\r\\n function makeAjaxRequest(method, url, data, successCallback) {\\r\\n const ajaxOptions = {\\r\\n method,\\r\\n url,\\r\\n success: successCallback,\\r\\n };\\r\\n\\r\\n // Conditionally set contentType for POST requests\\r\\n if (method.toUpperCase() === 'POST' && data) {\\r\\n ajaxOptions.data = JSON.stringify(data);\\r\\n ajaxOptions.contentType = 'application/json';\\r\\n } else if (method.toUpperCase() === 'GET' && data) {\\r\\n ajaxOptions.data = data;\\r\\n }\\r\\n\\r\\n $.ajax(ajaxOptions);\\r\\n }\\r\\n\\r\\n function setEqualHeight(containerSelector, contentSelector) {\\r\\n let minHeight = 0;\\r\\n\\r\\n $(containerSelector).each(function (index) {\\r\\n if (index % 3 === 0) {\\r\\n $(this).prevAll(containerSelector).slice(0, 3).find(contentSelector).css('min-height', minHeight);\\r\\n minHeight = 0;\\r\\n }\\r\\n\\r\\n const contentHeight = $(this).find(contentSelector).outerHeight();\\r\\n minHeight = Math.max(minHeight, contentHeight);\\r\\n });\\r\\n\\r\\n $(containerSelector).slice(-3).find(contentSelector).css('min-height', minHeight);\\r\\n }\\r\\n\\r\\n function handleLoadMoreVisibility(totalCount) {\\r\\n const remainingCount = totalCount - (loadMoreCount * takeSize);\\r\\n\\r\\n if (remainingCount <= 0) {\\r\\n $('#events-load-more').css('display', 'none');\\r\\n loadMoreCount = 1;\\r\\n } else {\\r\\n $('#events-load-more').css('display', 'block');\\r\\n }\\r\\n }\\r\\n\\r\\n // Create card\\r\\n function constructHeader(imageUrl, tags, price) {\\r\\n price = price || 'FREE';\\r\\n const imageHtml = `\\r\\n \\\"Event\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\\"pattern\\\"\\r\\n \\r\\n
\\r\\n
\\r\\n ${tags}\\r\\n
\\r\\n ${price}\\r\\n
\\r\\n
\\r\\n
\\r\\n `;\\r\\n\\r\\n return imageHtml;\\r\\n }\\r\\n\\r\\n function constructContent(title, locations, details, bagItems, showbagDescription, cardIndex, actualPrice) {\\r\\n const contentHtml = `\\r\\n

${title}

\\r\\n ${actualPrice != null ? `

PRICE: $${actualPrice}

` : ''}\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n

${locations}

\\r\\n
\\r\\n ${bagItems ?\\r\\n `
\\r\\n
\\r\\n \\r\\n ${showbagDescription && showbagDescription.length > 0 ?\\r\\n `
\\r\\n

Description

\\r\\n ${showbagDescription}\\r\\n
`\\r\\n : ''}\\r\\n
\\r\\n
` :\\r\\n `
${details}
`\\r\\n}\\r\\n
\\r\\n `;\\r\\n\\r\\n return contentHtml;\\r\\n }\\r\\n\\r\\n function constructSchedule(instances, cardIndex, stallOpeningTime, stallClosingTime, stallTimeslotDisplay, allShowguideType, eventId) {\\r\\n const headerHtml = `
Select date & time
`;\\r\\n const footerHtml = `\\r\\n \\r\\n `;\\r\\n\\r\\n const showMoreLinkHtml = instances && instances[0] && instances[0].instanceTimes.length > 3 ? `Show More` : '';\\r\\n\\r\\n let hasOutsideEkkaDates = instances ? instances.some(instance => !ekkaDates.includes(instance.eventDate)) : false;\\r\\n let isFoodRetail = (type === 'all' && allShowguideType === 0) || type === 'foodandretail';\\r\\n\\r\\n let eventInstances = (type === 'all' && allShowguideType === 1) || type === 'showguide' ? instances : null;\\r\\n let timeStallOpening = isFoodRetail ? stallOpeningTime : null;\\r\\n let timeStallClosing = isFoodRetail ? stallClosingTime : null;\\r\\n let timeStallDisplay = isFoodRetail ? stallTimeslotDisplay : null;\\r\\n\\r\\n let dateContainerHtml = constructDateContainer(eventInstances, cardIndex, hasOutsideEkkaDates, allShowguideType, eventId);\\r\\n let timeContainerHtml = constructTimeContainer(eventInstances, cardIndex, timeStallOpening, timeStallClosing, timeStallDisplay, isFoodRetail, eventId);\\r\\n\\r\\n return `${headerHtml}${dateContainerHtml}
${timeContainerHtml}${showMoreLinkHtml}${footerHtml}`;\\r\\n }\\r\\n\\r\\n //function getAddedTimeslotDisplays() {\\r\\n // if (myEkkaItems) {\\r\\n // return myEkkaItems.flatMap(item => item.myEkkaDates.flatMap(date => date.myEkkaTimeslots.map(timeslot => timeslot.instanceNodeId)));\\r\\n // }\\r\\n //}\\r\\n\\r\\n function getInstanceNodeIds() {\\r\\n if (myEkkaItems && myEkkaItems.length > 0) {\\r\\n return myEkkaItems.flatMap(item => item.myEkkaDates.flatMap(date => date.myEkkaTimeslots.map(timeslot => timeslot.instanceNodeId)));\\r\\n }\\r\\n }\\r\\n\\r\\n function isTimeInstanceAdded(time, myEkkaInstanceNodeIds) {\\r\\n if (myEkkaItems && myEkkaItems.length > 0 && myEkkaInstanceNodeIds) {\\r\\n return myEkkaInstanceNodeIds.includes(time.instanceNodeId);\\r\\n }\\r\\n }\\r\\n\\r\\n function isDateInstanceAdded(instance, myEkkaInstanceNodeIds) {\\r\\n if (myEkkaItems && myEkkaItems.length > 0) {\\r\\n return instance.instanceTimes.every(time => myEkkaInstanceNodeIds.includes(time.instanceNodeId));\\r\\n }\\r\\n }\\r\\n\\r\\n function hasAllNonInstanceTimeslots(dateToCheck, allShowguideType, eventId) {\\r\\n if (!myEkkaItems || myEkkaItems.length === 0) {\\r\\n return false;\\r\\n }\\r\\n\\r\\n const item = myEkkaItems.find(item => item.nodeId === eventId);\\r\\n if (!item) {\\r\\n return false;\\r\\n }\\r\\n\\r\\n const date = item.myEkkaDates.find(date => date.ekkaDate === dateToCheck);\\r\\n if (!date) {\\r\\n return false;\\r\\n }\\r\\n\\r\\n if (allShowguideType === 0 || type === 'foodandretail') {\\r\\n return true;\\r\\n }\\r\\n\\r\\n const timeslots = ['Morning', 'Afternoon', 'Evening'];\\r\\n return timeslots.every(timeslot => date.myEkkaTimeslots.some(slot => slot.timeslotDisplay === timeslot));\\r\\n }\\r\\n\\r\\n\\r\\n function hasNonInstanceTimeslot(dateToCheck, timeslotToCheck, eventId) {\\r\\n if (myEkkaItems && myEkkaItems.length > 0) {\\r\\n const item = myEkkaItems.find(item => item.nodeId === eventId);\\r\\n if (!item) {\\r\\n return false;\\r\\n }\\r\\n const date = item.myEkkaDates.find(date => date.ekkaDate === dateToCheck);\\r\\n if (!date) {\\r\\n return false;\\r\\n }\\r\\n return date.myEkkaTimeslots.some(slot => slot.timeslotDisplay === timeslotToCheck);\\r\\n }\\r\\n return false;\\r\\n }\\r\\n \\r\\n function constructDateContainer(instances, cardIndex, hasOutsideEkkaDates, allShowguideType, eventId) {\\r\\n let dateHtml;\\r\\n let firstInactiveIndex;\\r\\n\\r\\n // Get all instanceNodeIds from myEkkaItems\\r\\n const myEkkaInstanceNodeIds = getInstanceNodeIds();\\r\\n\\r\\n if (instances) {\\r\\n dateHtml = `\\r\\n ${ hasOutsideEkkaDates ? `

${customLabelMessage}

` : '' }\\r\\n ${ hasOutsideEkkaDates ?\\r\\n `\\r\\n
\\r\\n ${instances.filter(instance => !ekkaDates.includes(instance.eventDate)).map((instance, dateIndex) => {\\r\\n // Check if all instanceNodeIds in this instance are in myEkkaItems\\r\\n const isAdded = myEkkaItems && isDateInstanceAdded(instance, myEkkaInstanceNodeIds);\\r\\n\\r\\n return `
\\r\\n

${new Date(instance.eventDate).toLocaleString('default', { weekday: 'short' })}

\\r\\n

${new Date(instance.eventDate).getDate()}

\\r\\n
`;\\r\\n }).join('')}\\r\\n
\\r\\n ` : ''}\\r\\n
\\r\\n ${ekkaDates.map((ekkaDate, dateIndex) => {\\r\\n const instanceIndex = instances.findIndex(instance => instance.eventDate === ekkaDate);\\r\\n const isActive = instanceIndex !== -1;\\r\\n const dateClass = `flex-center date ${isActive ? '' : 'inactive'}`;\\r\\n\\r\\n // Check if all instanceNodeIds in this instance are in myEkkaItems\\r\\n const isAdded = myEkkaItems && myEkkaInstanceNodeIds && isActive && instances[instanceIndex].instanceTimes.every(time => myEkkaInstanceNodeIds.includes(time.instanceNodeId));\\r\\n\\r\\n // Update firstInactiveIndex if it's undefined and isAdded is false\\r\\n if (firstInactiveIndex === undefined && !isAdded && isActive) {\\r\\n firstInactiveIndex = instanceIndex;\\r\\n }\\r\\n\\r\\n // Add the active class to the first instance where isAdded is false, or to the first instance if all instances are added\\r\\n const activeClass = isActive && instanceIndex === (firstInactiveIndex !== undefined ? firstInactiveIndex : 0) ? 'active' : '';\\r\\n\\r\\n return `\\r\\n
\\r\\n

${isActive ? instances[instanceIndex].dayOfWeek : new Date(ekkaDate).toLocaleString('default', { weekday: 'short' })}

\\r\\n

${isActive ? instances[instanceIndex].day : new Date(ekkaDate).getDate()}

\\r\\n
\\r\\n `;\\r\\n }).join('')}\\r\\n
\\r\\n `;\\r\\n } else {\\r\\n const firstNonAddedIndex = ekkaDates.findIndex(ekkaDate => !(myEkkaItems && hasAllNonInstanceTimeslots(ekkaDate, allShowguideType, eventId)));\\r\\n\\r\\n dateHtml = `\\r\\n
\\r\\n ${ekkaDates.map((ekkaDate, dateIndex) => {\\r\\n const isAdded = myEkkaItems && hasAllNonInstanceTimeslots(ekkaDate, allShowguideType, eventId);\\r\\n const isActive = dateIndex === firstNonAddedIndex ? 'active' : '';\\r\\n const dateClass = `flex-center date ${isActive}`;\\r\\n return `\\r\\n
\\r\\n

${new Date(ekkaDate).toLocaleString('default', { weekday: 'short' })}

\\r\\n

${new Date(ekkaDate).getDate()}

\\r\\n
\\r\\n `;\\r\\n }).join('')}\\r\\n
`;\\r\\n }\\r\\n\\r\\n\\r\\n return dateHtml;\\r\\n }\\r\\n\\r\\n function constructTimeContainer(instances, cardIndex, stallOpeningTime, stallClosingTime, stallTimeslotDisplay, isFoodRetail, eventId) {\\r\\n let timeHtml;\\r\\n\\r\\n // Get all instanceNodeIds from myEkkaItems\\r\\n const myEkkaInstanceNodeIds = getInstanceNodeIds();\\r\\n\\r\\n if (instances) {\\r\\n // Find the first instance where the date is not yet added\\r\\n const instance = instances.find(instance => !isDateInstanceAdded(instance, myEkkaInstanceNodeIds)) || instances[0];\\r\\n\\r\\n timeHtml = `\\r\\n
\\r\\n ${instance.instanceTimes.slice(0, 3).map((time, timeIndex) => {\\r\\n // Check if this instanceNodeId is in myEkkaItems\\r\\n const isAdded = myEkkaItems && isTimeInstanceAdded(time, myEkkaInstanceNodeIds);\\r\\n return constructTimeContent(time, timeIndex, cardIndex, null, null, null, isAdded, eventId);\\r\\n }).join('')}\\r\\n
\\r\\n `;\\r\\n } else {\\r\\n const firstEkkaDate = ekkaDates[0];\\r\\n timeHtml = `\\r\\n
\\r\\n ${constructTimeContent(null, null, null, isFoodRetail ? stallOpeningTime : null, isFoodRetail ? stallClosingTime : null, isFoodRetail ? stallTimeslotDisplay : null, null, firstEkkaDate, eventId)}\\r\\n
\\r\\n `;\\r\\n }\\r\\n\\r\\n return timeHtml;\\r\\n }\\r\\n \\r\\n function constructTimeContent(timeInstance, timeIndex, cardIndex, stallOpeningTime, stallClosingTime, stallTimeslotDisplay, isAdded, ekkaDate, eventId) {\\r\\n let timeContentHtml;\\r\\n\\r\\n if (timeInstance) {\\r\\n timeContentHtml = `\\r\\n
\\r\\n

${timeInstance.startTimeDisplay} - ${timeInstance.finishTimeDisplay}

\\r\\n
\\r\\n `;\\r\\n } else {\\r\\n if (stallTimeslotDisplay) {\\r\\n timeContentHtml = `\\r\\n
\\r\\n

${stallTimeslotDisplay}

\\r\\n
\\r\\n `;\\r\\n } else {\\r\\n timeContentHtml = `\\r\\n
\\r\\n

Morning

\\r\\n
\\r\\n
\\r\\n

Afternoon

\\r\\n
\\r\\n
\\r\\n

Evening

\\r\\n
\\r\\n `;\\r\\n }\\r\\n }\\r\\n\\r\\n return timeContentHtml;\\r\\n }\\r\\n\\r\\n function addDatesListener(cardIndex, instances, isModal, stallOpeningTime, stallClosingTime, stallTimeslotDisplay, allShowguideType, eventId) {\\r\\n const cardSelector = isModal ? `.modal-showme-wrapper` : `.showme-card[data-card-index=\\\"${cardIndex}\\\"]`;\\r\\n const myEkkaInstanceNodeIds = getInstanceNodeIds();\\r\\n\\r\\n $(cardSelector).on('click', '.date-container .date:not(.inactive)', function () {\\r\\n const cardContainer = $(cardSelector);\\r\\n const dateIndex = $(this).data('date-index');\\r\\n\\r\\n const dateValue = $(this).data('date-value');\\r\\n \\r\\n cardContainer.find('.date-container .date').removeClass('active');\\r\\n $(this).addClass('active');\\r\\n\\r\\n let timeHTML;\\r\\n if (type === 'all' && allShowguideType === 1 || type === 'showguide') {\\r\\n const instance = instances[dateIndex];\\r\\n\\r\\n timeHTML = instance.instanceTimes.slice(0, 3).map((time, timeIndex) => {\\r\\n const isAdded = isTimeInstanceAdded(time, myEkkaInstanceNodeIds);\\r\\n return constructTimeContent(time, timeIndex, cardIndex, null, null, null, isAdded, null, eventId);\\r\\n }).join('');\\r\\n\\r\\n var timeContainer = updateTimeContainer(cardContainer, timeHTML);\\r\\n timeContainer.attr('data-date-value', $(this).data(\\\"date-value\\\"));\\r\\n\\r\\n if (instance.instanceTimes.length > 3) {\\r\\n const showMoreLink = cardContainer.find('.show-more-link');\\r\\n if (cardContainer.find('.show-more-link').length === 0) {\\r\\n timeContainer.after(`Show More`);\\r\\n } else {\\r\\n showMoreLink.html(\\\"Show More\\\");\\r\\n }\\r\\n }\\r\\n } else {\\r\\n timeHTML = constructTimeContent(null, null, null, (allShowguideType === 0 || type === 'foodandretail') ? stallOpeningTime : null, (allShowguideType === 0 || type === 'foodandretail') ? stallClosingTime : null, (allShowguideType === 0 || type === 'foodandretail') ? stallTimeslotDisplay : null, null, dateValue, eventId);\\r\\n updateTimeContainer(cardContainer, timeHTML);\\r\\n }\\r\\n\\r\\n $(cardSelector).find('#addEkkaButton' + cardIndex).prop('disabled', true);\\r\\n });\\r\\n\\r\\n $(cardSelector).on('click', '.time-container .time:not(.inactive)', function () {\\r\\n const cardContainer = $(cardSelector);\\r\\n cardContainer.find('.time-container .time').removeClass('active');\\r\\n $(this).addClass('active');\\r\\n\\r\\n $(cardSelector).find('#addEkkaButton' + cardIndex).prop('disabled', false);\\r\\n });\\r\\n\\r\\n $(`.showme-card[data-card-index=\\\"${cardIndex}\\\"]`).on('click', '.show-more-link', function (event) {\\r\\n event.preventDefault();\\r\\n\\r\\n //const cardContainer = $(`.showme-card[data-card-index=\\\"${cardIndex}\\\"]`);\\r\\n const cardContainer = $(this).closest('.showme-card');\\r\\n const dateIndex = cardContainer.find('.date.active').data('date-index');\\r\\n const timeContainer = cardContainer.find('.time-container');\\r\\n const showMoreLink = cardContainer.find('.show-more-link');\\r\\n\\r\\n if (showMoreLink.text() === \\\"Show More\\\") {\\r\\n const allTimeHtml = instances[dateIndex].instanceTimes.map((time, timeIndex) => {\\r\\n const isAdded = isTimeInstanceAdded(time, myEkkaInstanceNodeIds);\\r\\n return constructTimeContent(time, timeIndex, cardIndex, null, null, null, isAdded, eventId);\\r\\n }).join('');\\r\\n timeContainer.html(allTimeHtml);\\r\\n showMoreLink.html(\\\"Hide Timeslots\\\");\\r\\n } else {\\r\\n const initialTimeHtml = instances[dateIndex].instanceTimes.slice(0, 3).map((time, timeIndex) => {\\r\\n const isAdded = isTimeInstanceAdded(time, myEkkaInstanceNodeIds);\\r\\n return constructTimeContent(time, timeIndex, cardIndex, null, null, null, isAdded, eventId);\\r\\n }).join(''); \\r\\n timeContainer.html(initialTimeHtml);\\r\\n showMoreLink.html(\\\"Show More\\\");\\r\\n }\\r\\n });\\r\\n }\\r\\n\\r\\n function updateTimeContainer(cardContainer, timeHtml) {\\r\\n var timeContainer = cardContainer.find('.time-container');\\r\\n timeContainer.html(timeHtml);\\r\\n return timeContainer;\\r\\n }\\r\\n\\r\\n function renderCard(data, cardIndex) {\\r\\n let isShowbag = (type === 'all' && data.nodeType === 2) || type === 'showbag';\\r\\n\\r\\n let tags = isShowbag\\r\\n ? data.keywordList?.map(keyword => `
${keyword}
`).join('')\\r\\n : data.categories?.map(({ name }) => `
${name}
`).join('');\\r\\n\\r\\n //let locations = isShowbag\\r\\n // ? data.stalls?.map(({ boundingRectangle, stallName }) => boundingRectangle ? `${stallName}` : stallName).join(', ')\\r\\n // : data.location?.map(({ mapUrl, name }) => mapUrl ? `${name}` : name).join(', ');\\r\\n\\r\\n let locations = isShowbag\\r\\n ? data.stalls?.map(({ boundingRectangle, stallName }) => ekkaMapUrl && stallName ? `${stallName}` : stallName).join(', ')\\r\\n : data.location?.map(({ mapImageUrl, name }) => ekkaMapUrl && mapImageUrl ? `${name}` : name).join(', ');\\r\\n\\r\\n let items = isShowbag\\r\\n ? data.items?.map(({ details, quantity }) => quantity ? `
  • ${details} x ${quantity}
  • ` : `
  • ${details}
  • `).join('')\\r\\n : '';\\r\\n\\r\\n let description = isShowbag\\r\\n ? data.items?.filter(item => item.quantity === '').map(({ details }) => `

    ${details}

    `).join('')\\r\\n : '';\\r\\n\\r\\n var page = getDestinationPageLink(data.id);\\r\\n\\r\\n const baseCard = `\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n ${constructHeader(data.imageUrl, tags, data.price)}\\r\\n
    \\r\\n
    \\r\\n ${constructContent(data.name, locations, data.description || data.details, items, description, cardIndex, data.actualPrice)}\\r\\n
    \\r\\n
    ${page}
    \\r\\n
    \\r\\n ${constructSchedule(data.instances, cardIndex, data.openingTime, data.closingTime, data.timeslotDisplay, data.nodeType, data.id)}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n `;\\r\\n\\r\\n $('.showme-container').append(baseCard);\\r\\n\\r\\n $('#read-more-' + cardIndex).append(`Read More`);\\r\\n\\r\\n const readMoreButton = document.getElementById('readMoreButton' + cardIndex);\\r\\n if (readMoreButton) {\\r\\n readMoreButton.addEventListener('click', function () {\\r\\n openShowMeModal(data.imageUrl, tags, data.price, data.name, locations, data.description || data.details, items, description, cardIndex, data.instances, data.id, data.name, data.openingTime, data.closingTime, data.timeslotDisplay, data.nodeType, null, data.actualPrice);\\r\\n });\\r\\n }\\r\\n\\r\\n addDatesListener(cardIndex, data.instances, false, data.openingTime, data.closingTime, data.timeslotDisplay, data.nodeType, data.id);\\r\\n\\r\\n const addEkkaButton = document.getElementById('addEkkaButton' + cardIndex);\\r\\n if (addEkkaButton) {\\r\\n addEkkaButton.addEventListener('click', function () {\\r\\n addToEkka(cardIndex, false, data.nodeType);\\r\\n });\\r\\n }\\r\\n }\\r\\n\\r\\n async function getEvents(timeTag, sortValue, priceValue, locationValue, searchValue) {\\r\\n let selectedEventId;\\r\\n let daysFilter = [];\\r\\n\\r\\n if (selectedCategories.length !== 0) {\\r\\n categoryIds = selectedCategories;\\r\\n }\\r\\n\\r\\n if (selectedDates.length !== 0) {\\r\\n daysFilter = selectedDates.map(c => parseInt(c.value)).join(',');\\r\\n }\\r\\n\\r\\n if (loadMoreCount <= 1) {\\r\\n await getDestinationPages();\\r\\n }\\r\\n\\r\\n const commonParams = `skipSize=${skipSize}&takeSize=${takeSize}`;\\r\\n\\r\\n const optionalParams = (paramName, paramValue) => {\\r\\n if (Array.isArray(paramValue) && paramValue.length > 0) {\\r\\n return `&${paramName}=${paramValue.join(`&${paramName}=`)}`;\\r\\n } else if (paramValue !== undefined && paramValue !== null && !Array.isArray(paramValue)) {\\r\\n return `&${paramName}=${paramValue}`;\\r\\n } else {\\r\\n return '';\\r\\n }\\r\\n };\\r\\n\\r\\n //if (window.location.hash) {\\r\\n // selectedEventId = window.location.hash.substring(1).split('-')[0];\\r\\n //}\\r\\n\\r\\n var currentUrl = new URL(window.location.href);\\r\\n var queryParams = new URLSearchParams(currentUrl.search);\\r\\n if (queryParams.has('name')) {\\r\\n var nameValue = queryParams.get('name');\\r\\n var idMatch = nameValue.match(/^(\\\\d+)-/);\\r\\n if (idMatch) {\\r\\n selectedEventId = idMatch[1];\\r\\n }\\r\\n }\\r\\n\\r\\n let eventUrlMapping = {\\r\\n showguide: `/umbraco/api/eventspage/getevents?${commonParams}¤tPageId=${currentPageId}${optionalParams('categoryIds', categoryIds)}${optionalParams('sortValue', sortValue)}${optionalParams('priceValue', priceValue)}${optionalParams('timeTag', timeTag)}${optionalParams('searchValue', searchValue)}${optionalParams('dates', daysFilter)}`,\\r\\n foodandretail: `/umbraco/api/foodretailpage/getfoodandretail?${commonParams}${optionalParams('sortValue', sortValue)}${optionalParams('priceValue', priceValue)}${optionalParams('timeTag', timeTag)}${optionalParams('locationValue', locationValue)}${optionalParams('categoryIds', selectedCategories)}${optionalParams('searchValue', searchValue)}${optionalParams('selectedEventId', selectedEventId)}`,\\r\\n rides: `/umbraco/api/ridespage/getrides?${commonParams}${optionalParams('sortValue', sortValue)}${optionalParams('priceValue', priceValue)}${optionalParams('timeTag', timeTag)}${optionalParams('searchValue', searchValue)}${optionalParams('selectedEventId', selectedEventId)}`,\\r\\n showbag: `/umbraco/api/showbagspage/getall?${commonParams}${optionalParams('sortValue', sortValue)}${optionalParams('priceValue', priceValue)}${optionalParams('timeTag', timeTag)}${optionalParams('searchValue', searchValue)}${optionalParams('selectedEventId', selectedEventId)}${optionalParams('categoryValues', selectedCategories)}`,\\r\\n all: `/umbraco/api/showme/getallshowguides?${commonParams}${optionalParams('sortValue', sortValue)}${optionalParams('priceValue', priceValue)}${optionalParams('timeTag', timeTag)}${optionalParams('searchValue', searchValue)}${optionalParams('selectedEventId', selectedEventId)}`\\r\\n };\\r\\n\\r\\n const url = eventUrlMapping[type];\\r\\n\\r\\n makeAjaxRequest('GET', url, null, function (response) {\\r\\n const dataTypeMapping = {\\r\\n showguide: 'events',\\r\\n showbag: 'showbag',\\r\\n rides: 'rides',\\r\\n foodandretail: 'foodAndRetail',\\r\\n all: 'all'\\r\\n };\\r\\n\\r\\n const dataType = dataTypeMapping[type];\\r\\n const data = type === 'all' ? response.data.allShowguide : response.data[dataType];\\r\\n\\r\\n myEkkaItems = response.data.myEkkaItems;\\r\\n\\r\\n if (data && data.length > 0) {\\r\\n data.forEach((item, index) => renderCard(item, skipSize + index));\\r\\n setEqualHeight('.showme-card', '.showme-content');\\r\\n setEqualHeight('.showme-card', '.showme-destpage');\\r\\n setEqualHeight('.showme-card', '.showme-dates');\\r\\n\\r\\n $('.showme-no-results').css('display', 'none');\\r\\n } else {\\r\\n $('.showme-no-results').css('display', 'block');\\r\\n }\\r\\n\\r\\n //if (!isOutsideEkka) {\\r\\n constructAddedEkkaDates('.showme-card', '.showme-card-wrapper');\\r\\n //}\\r\\n\\r\\n handleLoadMoreVisibility(response.totalCount);\\r\\n });\\r\\n }\\r\\n\\r\\n // Read more pop up\\r\\n function openShowMeModal(imageUrl, tags, price, title, locations, details, bagItems, showbagDescription, cardIndex, instances, id, name, stallOpeningTime, stallClosingTime, stallTimeslotDisplay, allShowguideType, eventId, actualPrice) {\\r\\n let isShowbag = (type === 'all' && allShowguideType === 2) || type === 'showbag';\\r\\n var page = getDestinationPageLink(id);\\r\\n\\r\\n const modalHtml = `\\r\\n
    \\r\\n ${constructHeader(imageUrl, tags, price)}\\r\\n
    \\r\\n
    \\r\\n ${constructContent(title, locations, details, bagItems, showbagDescription, cardIndex, actualPrice)}\\r\\n
    ${page}
    \\r\\n
    \\r\\n
    \\r\\n ${constructSchedule(instances, cardIndex, stallOpeningTime, stallClosingTime, stallTimeslotDisplay, allShowguideType, eventId)}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n `;\\r\\n\\r\\n addDatesListener(cardIndex, instances, true, stallOpeningTime, stallClosingTime, stallTimeslotDisplay, allShowguideType, eventId);\\r\\n\\r\\n $('.modal-showme-wrapper').attr('data-event-id', id);\\r\\n $('.modal-showme-wrapper').attr('data-event-name', name);\\r\\n $('.modal-showme-wrapper').append(modalHtml);\\r\\n $('.modal-showme').css('display', 'block');\\r\\n $('body').addClass('no-scroll');\\r\\n\\r\\n const addEkkaButton = document.querySelector('.modal-showme-wrapper #addEkkaButton' + cardIndex);\\r\\n\\r\\n if (addEkkaButton) {\\r\\n addEkkaButton.addEventListener('click', function () {\\r\\n addToEkka(cardIndex, true, allShowguideType);\\r\\n });\\r\\n }\\r\\n\\r\\n //if (!isOutsideEkka) {\\r\\n constructAddedEkkaDates('.modal-showme-wrapper', '.modal-showme-body');\\r\\n //}\\r\\n\\r\\n $('.modal-showme .show-more-link').on('click', function (event) {\\r\\n event.preventDefault();\\r\\n const myEkkaInstanceNodeIds = getInstanceNodeIds();\\r\\n const cardIndex = event.target.closest('.showme-dates').querySelector('.date-container .date.active').getAttribute('data-card-index');\\r\\n const dateIndex = event.target.closest('.showme-dates').querySelector('.date-container .date.active').getAttribute('data-date-index');\\r\\n const timeContainer = event.target.closest('.showme-dates').querySelector('.time-container');\\r\\n\\r\\n if (event.target.text === \\\"Show More\\\") {\\r\\n const allTimeHtml = instances[dateIndex].instanceTimes.map((time, timeIndex) => {\\r\\n const isAdded = isTimeInstanceAdded(time, myEkkaInstanceNodeIds);\\r\\n return constructTimeContent(time, timeIndex, cardIndex, null, null, null, isAdded, eventId);\\r\\n }).join('');\\r\\n $(timeContainer).html(allTimeHtml);\\r\\n $(event.target).html(\\\"Hide Timeslots\\\");\\r\\n } else {\\r\\n const initialTimeHtml = instances[dateIndex].instanceTimes.slice(0, 3).map((time, timeIndex) => {\\r\\n const isAdded = isTimeInstanceAdded(time, myEkkaInstanceNodeIds);\\r\\n return constructTimeContent(time, timeIndex, cardIndex, null, null, null, isAdded, eventId);\\r\\n }).join('');\\r\\n $(timeContainer).html(initialTimeHtml);\\r\\n $(event.target).html(\\\"Show More\\\");\\r\\n }\\r\\n });\\r\\n\\r\\n const formattedName = name.toLowerCase().replace(/[^a-z0-9\\\\s]/g, '').replace(/\\\\s+/g, '-');\\r\\n const newUrl = new URL(window.location.href);\\r\\n newUrl.searchParams.set('name', `${id}-${formattedName}`);\\r\\n history.pushState({}, document.title, newUrl.toString());\\r\\n }\\r\\n\\r\\n // Add to ekka\\r\\n function addToEkka(cardIndex, isModal, allShowguideType) {\\r\\n const cardSelector = isModal ? '.modal-showme-wrapper' : `.showme-card[data-card-index=\\\"${cardIndex}\\\"]`;\\r\\n const $card = $(cardSelector);\\r\\n\\r\\n const $activeDate = $card.find('.date-container .date.active');\\r\\n const $activeTime = $card.find('.time-container .time.active');\\r\\n\\r\\n const nodeType = type === 'all' ? allShowguideType : typeMapping[type] || 0;\\r\\n\\r\\n const data = {\\r\\n nodeId: $card.data('event-id'),\\r\\n nodeType: nodeType,\\r\\n eventDate: $activeDate.data('date-value'),\\r\\n timeSlotDisplay: $activeTime.data('time-display'),\\r\\n actualStartTime: $activeTime.data('start-time'),\\r\\n actualEndTime: $activeTime.data('finish-time'),\\r\\n instanceNodeId: $activeTime.data('instance-id')\\r\\n };\\r\\n\\r\\n // check if already exists in myEkkaItems\\r\\n if (myEkkaItems != null && myEkkaItems.some(m => m.nodeId === data.nodeId)) {\\r\\n var _ekkaItems = myEkkaItems.find(m => m.nodeId === data.nodeId);\\r\\n if (_ekkaItems.myEkkaDates.some(m => m.ekkaDate === data.eventDate)) {\\r\\n var _ekkaDates = _ekkaItems.myEkkaDates.find(m => m.ekkaDate === data.eventDate);\\r\\n if (_ekkaDates.myEkkaTimeslots.some(m => m.timeslotDisplay === data.timeSlotDisplay)) {\\r\\n alert('Timeslot already added');\\r\\n return;\\r\\n }\\r\\n }\\r\\n }\\r\\n\\r\\n if (isLoggedin) {\\r\\n $(cardSelector + \\\" #addEkkaButton\\\" + cardIndex).prop('disabled', true);\\r\\n\\r\\n makeAjaxRequest('POST', '/umbraco/api/myekkaitems/AddEkkaItem', data, function (response) {\\r\\n myEkkaItems = response.data;\\r\\n\\r\\n constructAddedEkkaDates('.modal-showme-wrapper', '.modal-showme-body');\\r\\n constructAddedEkkaDates('.showme-card', '.showme-card-wrapper');\\r\\n\\r\\n if (type === 'all' && allShowguideType === 1 || type === 'showguide') {\\r\\n const myEkkaInstanceNodeIds = getInstanceNodeIds();\\r\\n const data = $activeTime.data();\\r\\n const time = {\\r\\n instanceNodeId: data.instanceId\\r\\n };\\r\\n\\r\\n if (isTimeInstanceAdded(time, myEkkaInstanceNodeIds)) {\\r\\n $activeTime.addClass('added');\\r\\n }\\r\\n\\r\\n const timeslots = $activeDate.parent().siblings('.time-container').find('.time');\\r\\n\\r\\n const instanceIds = timeslots.map(function () {\\r\\n return $(this).data('instance-id');\\r\\n }).get();\\r\\n\\r\\n if (instanceIds.every(instanceId => myEkkaInstanceNodeIds.includes(instanceId))) {\\r\\n $activeDate.addClass('added');\\r\\n }\\r\\n } else {\\r\\n if (hasAllNonInstanceTimeslots($activeDate.data('date-value'), allShowguideType, $card.data('event-id'))) {\\r\\n $activeDate.addClass('added')\\r\\n }\\r\\n if (hasNonInstanceTimeslot($activeDate.data('date-value'), $activeTime.data('time-display'), $card.data('event-id'))) {\\r\\n $activeTime.addClass('added');\\r\\n }\\r\\n } \\r\\n });\\r\\n }\\r\\n else {\\r\\n loginController.displayLoginWindow();\\r\\n localStorage.setItem('dataForAddToEkka', JSON.stringify(data));\\r\\n }\\r\\n }\\r\\n\\r\\n function AddToEkkaOnLogin() {\\r\\n if (isLoggedin) {\\r\\n var dataForAddToEkka = localStorage.getItem('dataForAddToEkka');\\r\\n if (dataForAddToEkka !== null) {\\r\\n const data = JSON.parse(dataForAddToEkka);\\r\\n makeAjaxRequest('POST', '/umbraco/api/myekkaitems/AddEkkaItem', data, function (response) {\\r\\n myEkkaItems = response.data;\\r\\n constructAddedEkkaDates('.modal-showme-wrapper', '.modal-showme-body');\\r\\n constructAddedEkkaDates('.showme-card', '.showme-card-wrapper');\\r\\n });\\r\\n }\\r\\n }\\r\\n\\r\\n localStorage.removeItem('dataForAddToEkka');\\r\\n }\\r\\n\\r\\n function constructAddedEkkaDates(parentSelector, childSelector) {\\r\\n $(parentSelector).find('.showme-added-dates').remove();\\r\\n if (myEkkaItems) {\\r\\n myEkkaItems.forEach(item => {\\r\\n const nodeId = item.nodeId;\\r\\n const matchingDiv = $(parentSelector + `[data-event-id='${ nodeId }']`);\\r\\n if (matchingDiv.length > 0) {\\r\\n let appendedDiv = matchingDiv.find(childSelector + ' > .showme-added-dates');\\r\\n if (appendedDiv.length === 0) {\\r\\n matchingDiv.find(childSelector).append('

    Added to my ekka

    ');\\r\\n }\\r\\n appendedDiv = matchingDiv.find(childSelector + ' > .showme-added-dates .added-dates-container');\\r\\n appendedDiv.empty();\\r\\n item.myEkkaDates.forEach(dateItem => {\\r\\n dateItem.myEkkaTimeslots.forEach(timeslot => {\\r\\n appendedDiv.append(`

    ${new Date(dateItem.ekkaDate).toLocaleString('default', { weekday: 'short' })} ${new Date(dateItem.ekkaDate).getDate()} ${timeslot.timeslotDisplay} X

    `);\\r\\n });\\r\\n });\\r\\n appendedDiv.on('click', '.remove-timeslot', function () {\\r\\n const data = {\\r\\n ekkaId: item.id,\\r\\n nodeId: nodeId,\\r\\n nodeType: item.nodeType,\\r\\n timeSlotDisplay: $(this).parent().parent().data('timeslot-display'),\\r\\n actualStartTime: $(this).parent().parent().data('start-time'),\\r\\n ekkaDateId: $(this).parent().parent().data('date-id'),\\r\\n ekkaTimeslotId: $(this).parent().parent().data('time-id'),\\r\\n name: $(this).closest(parentSelector).data('event-name')\\r\\n };\\r\\n showDeleteModal(data);\\r\\n });\\r\\n }\\r\\n });\\r\\n }\\r\\n }\\r\\n\\r\\n function showDeleteModal(data) {\\r\\n $('body').addClass('no-scroll');\\r\\n $('.modal-itinerary-delete').addClass('show');\\r\\n $('.modal-itinerary-delete').css('z-index', '1003');\\r\\n $('
    ').insertAfter('.modal-itinerary-delete');\\r\\n\\r\\n $('.modal-itinerary-delete .nodename').html(`'${data.name}'?`);\\r\\n\\r\\n $('.btn-confirmdelete').off().on('click', function () {\\r\\n makeAjaxRequest('POST', '/umbraco/api/MyEkkaItems/RemoveEkkaItem', data, function (response) {\\r\\n if (response.success) {\\r\\n myEkkaItems = response.data;\\r\\n closeDeleteModal();\\r\\n constructAddedEkkaDates('.modal-showme-wrapper', '.modal-showme-body');\\r\\n constructAddedEkkaDates('.showme-card', '.showme-card-wrapper');\\r\\n\\r\\n if (window.myEkkaController !== undefined) {\\r\\n window.location.reload();\\r\\n }\\r\\n }\\r\\n });\\r\\n });\\r\\n\\r\\n $('.btn-canceldelete').off().on('click', function () {\\r\\n closeDeleteModal();\\r\\n });\\r\\n }\\r\\n\\r\\n function closeDeleteModal() {\\r\\n $('.modal-itinerary-delete').removeClass('show');\\r\\n $('body').removeClass('no-scroll');\\r\\n $('.modal-overlay').remove();\\r\\n }\\r\\n\\r\\n function renderFilter(filter) {\\r\\n let filterHtml;\\r\\n if (filter.filterType === 'searchFilter') {\\r\\n filterHtml = `\\r\\n
    \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n `;\\r\\n } else {\\r\\n let filtersWithMultipleSelections = ['categoriesFilter', 'dateFilter'];\\r\\n\\r\\n let multiple = filtersWithMultipleSelections.includes(filter.filterType) ? 'multiple' : '';\\r\\n filterHtml = `\\r\\n
    \\r\\n \\r\\n
    \\r\\n ${filter.filterValues.map((filterValue) => {\\r\\n let value;\\r\\n if (filter.filterType === 'hoursFilter' || (filter.filterType === 'categoriesFilter' && type === 'showbag')) {\\r\\n value = filterValue.name;\\r\\n } else {\\r\\n value = filterValue.id;\\r\\n }\\r\\n let checkbox = filtersWithMultipleSelections.includes(filter.filterType) ? '' : '';\\r\\n let label = `
    ${filterValue.name}
    `;\\r\\n return `
    ${checkbox}${label}
    `;\\r\\n }).join('')}\\r\\n
    \\r\\n
    \\r\\n `;\\r\\n }\\r\\n\\r\\n $('.showme-filters--dropdowns').append(filterHtml);\\r\\n }\\r\\n\\r\\n function resetFilters() {\\r\\n var dropdowns = $('.showme-filters button.dropdown-toggle');\\r\\n selectedCategories.length = 0;\\r\\n selectedCategoriesTitle.length = 0;\\r\\n\\r\\n selectedDates.length = 0;\\r\\n\\r\\n dropdowns.each(function () {\\r\\n var currentButton = $(this);\\r\\n currentButton.removeAttr('data-value');\\r\\n var filterTextElement = currentButton.find('#filterText');\\r\\n var dataTitleValue = currentButton.attr('data-title');\\r\\n filterTextElement.html(dataTitleValue);\\r\\n\\r\\n if (currentButton.hasClass('multiple')) {\\r\\n var dropdownMenu = currentButton.next('div.dropdown-menu');\\r\\n dropdownMenu.find('input[type=\\\"checkbox\\\"]').prop('checked', false);\\r\\n dropdownMenu.find('span.checkmark').removeClass('is-checked');\\r\\n }\\r\\n });\\r\\n\\r\\n $('.showme-search-input').val('');\\r\\n\\r\\n if (type === 'foodandretail') {\\r\\n getFilters();\\r\\n }\\r\\n }\\r\\n \\r\\n function getFilters() {\\r\\n makeAjaxRequest('GET', '/umbraco/api/showme/GetFilters?showMeType=' + type + '¤tEventPageId=' + currentPageId, null, function (response) {\\r\\n if (response == null || response == undefined) {\\r\\n return;\\r\\n }\\r\\n\\r\\n $('.showme-filters--dropdowns').empty();\\r\\n response.filters.forEach((filter) => renderFilter(filter));\\r\\n attachFilterEvents();\\r\\n\\r\\n // Set default filters\\r\\n SetDefaultFilters();\\r\\n\\r\\n $('.showme-search-input').on('keypress', function (e) {\\r\\n if (e.which == '13') {\\r\\n getSelectedFilterValues();\\r\\n skipSize = 0;\\r\\n $(\\\".showme-container\\\").empty();\\r\\n getEvents(timeTagValue, sortValue, priceValue, locationValue, searchValue);\\r\\n }\\r\\n });\\r\\n });\\r\\n }\\r\\n\\r\\n function SetDefaultFilters() {\\r\\n switch (type) {\\r\\n case \\\"all\\\":\\r\\n // Set sort default\\r\\n $('.showme-filters--dropdowns #sortFilterDropdown').attr(\\\"data-value\\\", \\\"3\\\");\\r\\n $('.showme-filters--dropdowns #sortFilterDropdown #filterText').html(\\\"Date Ascending\\\");\\r\\n sortValue = 3;\\r\\n break;\\r\\n default:\\r\\n break;\\r\\n }\\r\\n }\\r\\n\\r\\n function UpdateFoodRetailRelatedFilters(value, title) {\\r\\n let url = '/umbraco/api/showme/getrelatedfoodretailfilters?';\\r\\n let hoursFilterDropdownValue = \\\"\\\";\\r\\n let locationFilterDropdownValue = 0;\\r\\n\\r\\n if (title === 'Food Type') {\\r\\n hoursFilterDropdownValue = $(\\\"#hoursFilterDropdown\\\").data(\\\"value\\\");\\r\\n locationFilterDropdownValue = $(\\\"#locationFilterDropdown\\\").data(\\\"value\\\");\\r\\n\\r\\n url += selectedCategories.map(categoryId => `categoryIds=${categoryId}`).join('&');\\r\\n\\r\\n if (locationFilterDropdownValue !== null) {\\r\\n url += '&locationId=' + locationFilterDropdownValue;\\r\\n }\\r\\n if (hoursFilterDropdownValue !== null) {\\r\\n url += '&timeTag=' + hoursFilterDropdownValue;\\r\\n }\\r\\n } else if (title === 'Food Stalls') {\\r\\n url += 'locationId=' + value;\\r\\n hoursFilterDropdownValue = $(\\\"#hoursFilterDropdown\\\").data(\\\"value\\\");\\r\\n\\r\\n if (selectedCategories && selectedCategories.length > 0) {\\r\\n url += '&' + selectedCategories.map(categoryId => `categoryIds=${categoryId}`).join('&')\\r\\n }\\r\\n if (hoursFilterDropdownValue !== null) {\\r\\n url += '&timeTag=' + hoursFilterDropdownValue;\\r\\n }\\r\\n } else if (title === 'Stall Hours') {\\r\\n url += 'timeTag=' + value;\\r\\n locationFilterDropdownValue = $(\\\"#locationFilterDropdown\\\").data(\\\"value\\\");\\r\\n \\r\\n if (selectedCategories && selectedCategories.length > 0) {\\r\\n url += '&' + selectedCategories.map(categoryId => `categoryIds=${categoryId}`).join('&')\\r\\n }\\r\\n\\r\\n if (locationFilterDropdownValue !== null) {\\r\\n url += '&locationId=' + locationFilterDropdownValue;\\r\\n }\\r\\n }\\r\\n\\r\\n makeAjaxRequest('GET', url, null, function (response) {\\r\\n response.forEach((filter) => {\\r\\n // Skip if filter is already selected\\r\\n if (title == 'Food Type' && filter.filterType == \\\"categoriesFilter\\\") {\\r\\n return;\\r\\n }\\r\\n else if (title == 'Food Stalls' && filter.filterType == \\\"locationFilter\\\") {\\r\\n return;\\r\\n }\\r\\n else if (title == 'Stall Hours' && filter.filterType == \\\"hoursFilter\\\") {\\r\\n return;\\r\\n }\\r\\n\\r\\n updateDropdownValues(filter, filter.filterType + 'Dropdown');\\r\\n });\\r\\n attachFilterEvents();\\r\\n });\\r\\n \\r\\n }\\r\\n\\r\\n\\r\\n function updateDropdownValues(filter, dropdownId) {\\r\\n // Find the dropdown menu\\r\\n let dropdownMenu = $(`#${dropdownId}`).next('.dropdown-menu');\\r\\n\\r\\n // Get the current data-value\\r\\n let currentDataValue = $(`#${dropdownId}`).attr('data-value');\\r\\n\\r\\n // Clear existing dropdown values\\r\\n dropdownMenu.empty();\\r\\n\\r\\n // Add new dropdown values\\r\\n filter.filterValues.forEach((filterValue) => {\\r\\n let value;\\r\\n if (filter.filterType === 'hoursFilter' || (filter.filterType === 'categoriesFilter' && type === 'showbag')) {\\r\\n value = filterValue.name;\\r\\n } else {\\r\\n value = filterValue.id;\\r\\n }\\r\\n let multiple = filter.filterType === 'categoriesFilter' ? 'multiple' : '';\\r\\n let checkbox = multiple ? '' : '';\\r\\n let label = `
    ${filterValue.name}
    `;\\r\\n let dropdownItem = `
    ${checkbox}${label}
    `;\\r\\n\\r\\n dropdownMenu.append(dropdownItem);\\r\\n });\\r\\n\\r\\n // Update the dropdown button text and remove data-value attribute\\r\\n let dropdownButton = $(`#${dropdownId}`);\\r\\n\\r\\n //if (!filter.filterValues.some(filterValue =>\\r\\n // (filter.filterType === 'hoursFilter' && filterValue.name.toString() === currentDataValue) ||\\r\\n // (filter.filterType !== 'hoursFilter' && filterValue.id.toString() === currentDataValue)\\r\\n //)) {\\r\\n // dropdownButton.removeAttr('data-value');\\r\\n // var filterTextElement = dropdownButton.find('#filterText');\\r\\n // var dataTitleValue = dropdownButton.attr('data-title');\\r\\n // filterTextElement.html(dataTitleValue);\\r\\n\\r\\n // if (dropdownButton.hasClass('multiple')) {\\r\\n // selectedCategories.length = 0;\\r\\n // selectedCategoriesTitle.length = 0;\\r\\n // dropdownMenu.find('input[type=\\\"checkbox\\\"]').prop('checked', false);\\r\\n // dropdownMenu.find('span.checkmark').removeClass('is-checked');\\r\\n // }\\r\\n //}\\r\\n\\r\\n if (!filter.filterValues.some(filterValue =>\\r\\n (filter.filterType === 'hoursFilter' && filterValue.name.toString() === currentDataValue) ||\\r\\n (filter.filterType !== 'hoursFilter' && filterValue.id.toString() === currentDataValue)\\r\\n ) && (filter.filterType !== 'categoriesFilter' || !selectedCategories.some(categoryId =>\\r\\n filter.filterValues.some(filterValue => filterValue.id.toString() === categoryId)\\r\\n ))) {\\r\\n dropdownButton.removeAttr('data-value');\\r\\n var filterTextElement = dropdownButton.find('#filterText');\\r\\n var dataTitleValue = dropdownButton.attr('data-title');\\r\\n filterTextElement.html(dataTitleValue);\\r\\n\\r\\n if (dropdownButton.hasClass('multiple')) {\\r\\n selectedCategories.length = 0;\\r\\n selectedCategoriesTitle.length = 0;\\r\\n dropdownMenu.find('input[type=\\\"checkbox\\\"]').prop('checked', false);\\r\\n dropdownMenu.find('span.checkmark').removeClass('is-checked');\\r\\n }\\r\\n } else {\\r\\n if (dropdownButton.hasClass('multiple')) {\\r\\n dropdownMenu.find('input[type=\\\"checkbox\\\"]').each(function () {\\r\\n var checkbox = $(this);\\r\\n var dropdownItem = checkbox.closest('.dropdown-item');\\r\\n var dropdownItemValue = dropdownItem.data('value');\\r\\n\\r\\n if (selectedCategories.includes(dropdownItemValue.toString())) {\\r\\n checkbox.prop('checked', true);\\r\\n dropdownItem.find('span.checkmark').addClass('is-checked');\\r\\n } else {\\r\\n checkbox.prop('checked', false);\\r\\n dropdownItem.find('span.checkmark').removeClass('is-checked');\\r\\n }\\r\\n });\\r\\n }\\r\\n }\\r\\n\\r\\n }\\r\\n\\r\\n function attachFilterEvents() {\\r\\n $('.showme-filters .dropdown-item:not(.multiple)').off().on('click', function (e) {\\r\\n const value = $(this).attr(\\\"data-value\\\");\\r\\n const text = $(this).attr(\\\"data-text\\\");\\r\\n const node = $(this).parent().prev('.dropdown-toggle');\\r\\n\\r\\n $(node).find('#filterText').html(text);\\r\\n $(node).attr('data-value', value);\\r\\n $(node).trigger('click');\\r\\n\\r\\n const buttonTitle = $(this).parent('.dropdown-menu').siblings('button.dropdown-toggle').attr('data-title');\\r\\n if (buttonTitle === 'Food Stalls' || buttonTitle === 'Stall Hours') {\\r\\n UpdateFoodRetailRelatedFilters(value, buttonTitle);\\r\\n }\\r\\n\\r\\n node.addClass('highlight');\\r\\n });\\r\\n\\r\\n $('.showme-filters .dropdown-item.multiple').off().on('click', function (e) {\\r\\n e.stopPropagation();\\r\\n e.preventDefault();\\r\\n\\r\\n const checkmark = $(this).find('span.checkmark');\\r\\n const checkbox = $(this).find('input[type=\\\"checkbox\\\"]');\\r\\n const value = $(this).attr(\\\"data-value\\\");\\r\\n const text = $(this).attr(\\\"data-text\\\");\\r\\n const node = $(this).parent().prev('.dropdown-toggle');\\r\\n const dropdownTitle = $(node).attr(\\\"data-title\\\");\\r\\n\\r\\n if (checkmark.hasClass('is-checked')) {\\r\\n checkmark.removeClass('is-checked');\\r\\n checkbox.prop('checked', false);\\r\\n\\r\\n if (dropdownTitle !== 'Date') {\\r\\n let index = selectedCategories.indexOf(value);\\r\\n if (index > -1) {\\r\\n selectedCategories.splice(index, 1);\\r\\n }\\r\\n\\r\\n let titleIndex = selectedCategoriesTitle.indexOf(text);\\r\\n if (titleIndex > -1) {\\r\\n selectedCategoriesTitle.splice(titleIndex, 1);\\r\\n }\\r\\n }\\r\\n else {\\r\\n // Used for Date dropdown\\r\\n selectedDates = selectedDates.filter(x => x.title !== dropdownTitle || x.text !== text || x.value !== value);\\r\\n }\\r\\n } else {\\r\\n checkmark.addClass('is-checked');\\r\\n checkbox.prop('checked', true);\\r\\n\\r\\n if (dropdownTitle !== 'Date') {\\r\\n selectedCategories.push(value);\\r\\n selectedCategoriesTitle.push(text);\\r\\n }\\r\\n else {\\r\\n // Used for Date dropdown\\r\\n selectedDates.push({ title: dropdownTitle, text, value});\\r\\n }\\r\\n }\\r\\n\\r\\n // Update the filter text based on the number of selected items\\r\\n if (dropdownTitle !== 'Date') {\\r\\n if (selectedCategories.length === 0) {\\r\\n $(node).find('#filterText').html(dropdownTitle); // If no item is selected, go back to the original title\\r\\n node.removeClass('highlight');\\r\\n } else if (selectedCategories.length === 1) {\\r\\n $(node).find('#filterText').html(selectedCategoriesTitle);\\r\\n node.addClass('highlight');\\r\\n } else {\\r\\n /* $(node).find('#filterText').html(selectedCategories.length + ' items selected');*/\\r\\n $(node).find('#filterText').html(dropdownTitle + ' (' + selectedCategories.length + ')');\\r\\n node.addClass('highlight');\\r\\n }\\r\\n }\\r\\n else {\\r\\n if (selectedDates.length == 0) {\\r\\n $(node).find('#filterText').html(dropdownTitle); // If no item is selected, go back to the original title\\r\\n node.removeClass('highlight');\\r\\n }\\r\\n else {\\r\\n var label = selectedDates.length === 1 ? selectedDates[0].text : dropdownTitle + ' (' + selectedDates.length + ')';\\r\\n $(node).find('#filterText').html(label);\\r\\n node.addClass('highlight');\\r\\n }\\r\\n }\\r\\n\\r\\n if (dropdownTitle === 'Food Type') {\\r\\n UpdateFoodRetailRelatedFilters(selectedCategories, dropdownTitle);\\r\\n }\\r\\n });\\r\\n }\\r\\n\\r\\n async function getDestinationPages() {\\r\\n var response = await fetch('/umbraco/api/showme/getdestinationpages', { method: \\\"GET\\\" });\\r\\n if (response.ok) {\\r\\n var data = await response.json();\\r\\n destinationPages = data;\\r\\n }\\r\\n }\\r\\n\\r\\n function getDestinationPageLink(eventId) {\\r\\n if (destinationPages) {\\r\\n const destinationPage = destinationPages.find(page => page.externalId === eventId);\\r\\n if (destinationPage) {\\r\\n return `\\r\\n \\r\\n \\r\\n \\r\\n `;\\r\\n }\\r\\n }\\r\\n\\r\\n return '';\\r\\n }\\r\\n\\r\\n $(function () {\\r\\n var currentUrl = new URL(window.location.href);\\r\\n var queryParams = new URLSearchParams(currentUrl.search);\\r\\n if (queryParams.has('name')) {\\r\\n var nameValue = queryParams.get('name');\\r\\n var idMatch = nameValue.match(/^(\\\\d+)-/);\\r\\n if (idMatch) {\\r\\n var id = idMatch[1];\\r\\n var pageUrl = window.location.href;\\r\\n let apiUrl, tags, locations, items, description;\\r\\n\\r\\n let pageType;\\r\\n if (pageUrl.indexOf(\\\"showbags\\\") !== -1) {\\r\\n pageType = \\\"showbag\\\";\\r\\n } else if (pageUrl.indexOf(\\\"rides\\\") !== -1) {\\r\\n pageType = \\\"rides\\\";\\r\\n } else if (pageUrl.indexOf(\\\"food-retail\\\") !== -1) {\\r\\n pageType = \\\"foodAndRetail\\\";\\r\\n } else {\\r\\n pageType = \\\"events\\\";\\r\\n }\\r\\n\\r\\n if (pageType === \\\"showbag\\\") {\\r\\n apiUrl = '/umbraco/api/showbagspage/getbyids?ids=' + id;\\r\\n makeAjaxRequest('GET', apiUrl, null, function (response) {\\r\\n if (response && response.length > 0) {\\r\\n tags = response[0].keywordList && response[0].keywordList != null\\r\\n ? response[0].keywordList.map(keyword => `
    ${keyword}
    `).join('')\\r\\n : '';\\r\\n\\r\\n locations = response[0].stalls && response[0].stalls != null\\r\\n ? response[0].stalls.map(({ boundingRectangle, stallName }) => ekkaMapUrl && stallName ? `${stallName}` : stallName).join(', ')\\r\\n : '';\\r\\n\\r\\n items = response[0].items && response[0].items != null\\r\\n ? response[0].items.map(({ details, quantity }) => quantity ? `
  • ${details} x ${quantity}
  • ` : `
  • ${details}
  • `).join('')\\r\\n : '';\\r\\n\\r\\n description = response[0].items && response[0].items != null\\r\\n ? response[0].items\\r\\n .filter(item => item.quantity === '')\\r\\n .map(({ details }) => `

    ${details}

    `)\\r\\n .join('')\\r\\n : '';\\r\\n openShowMeModal(response[0].imageUrl, tags, response[0].price, response[0].name, locations, response[0].description || response[0].details, items, description, null, null, id, response[0].name, null, null, null, 2, id, response[0].actualPrice);\\r\\n }\\r\\n });\\r\\n }\\r\\n else if (pageType === \\\"events\\\") {\\r\\n apiUrl = '/umbraco/api/eventspage/getbyids?ids=' + id;\\r\\n makeAjaxRequest('GET', apiUrl, null, function (response) {\\r\\n if (response && response.length > 0) {\\r\\n tags = response[0].categories && response[0].categories != null\\r\\n ? response[0].categories.map(({ name }) => `
    ${name}
    `).join('')\\r\\n : '';\\r\\n locations = response[0].location && response[0].location != null\\r\\n ? response[0].location.map(({ mapImageUrl, name }) => ekkaMapUrl && mapImageUrl ? `${name}` : name).join(', ')\\r\\n : '';\\r\\n openShowMeModal(response[0].imageUrl, tags, response[0].price, response[0].name, locations, response[0].description || response[0].details, null, null, null, response[0].instances, id, response[0].name, null, null, null, 1, id, null);\\r\\n }\\r\\n });\\r\\n }\\r\\n else if (pageType === \\\"foodAndRetail\\\") {\\r\\n apiUrl = '/umbraco/api/foodretailpage/getbyids?ids=' + id;\\r\\n makeAjaxRequest('GET', apiUrl, null, function (response) {\\r\\n if (response && response.length > 0) {\\r\\n tags = response[0].categories && response[0].categories != null\\r\\n ? response[0].categories.map(({ name }) => `
    ${name}
    `).join('')\\r\\n : '';\\r\\n locations = response[0].location && response[0].location != null\\r\\n ? response[0].location.map(({ mapImageUrl, name }) => ekkaMapUrl && mapImageUrl ? `${name}` : name).join(', ')\\r\\n : '';\\r\\n openShowMeModal(response[0].imageUrl, tags, response[0].price, response[0].name, locations, response[0].description || response[0].details, null, null, null, null, id, response[0].name, response[0].openingTime, response[0].closingTime, response[0].timeslotDisplay, 0, id, null);\\r\\n }\\r\\n });\\r\\n }\\r\\n else {\\r\\n apiUrl = '/umbraco/api/ridespage/getbyids?ids=' + id;\\r\\n makeAjaxRequest('GET', apiUrl, null, function (response) {\\r\\n if (response && response.length > 0) {\\r\\n tags = response[0].categories && response[0].categories != null\\r\\n ? response[0].categories.map(({ name }) => `
    ${name}
    `).join('')\\r\\n : '';\\r\\n locations = response[0].location && response[0].location != null\\r\\n ? response[0].location.map(({ mapImageUrl, name }) => ekkaMapUrl && mapImageUrl ? `${name}` : name).join(', ')\\r\\n : '';\\r\\n openShowMeModal(response[0].imageUrl, tags, response[0].price, response[0].name, locations, response[0].description || response[0].details, null, null, null, null, id, response[0].name, null, null, null, 3, id, null);\\r\\n }\\r\\n });\\r\\n }\\r\\n }\\r\\n }\\r\\n });\\r\\n\\r\\n return {\\r\\n init: async function (eventType) {\\r\\n type = eventType;\\r\\n bindEvents();\\r\\n getFilters();\\r\\n if (type === 'all') {\\r\\n await getEvents(null, 3, null, null, null);\\r\\n }\\r\\n else {\\r\\n await getEvents();\\r\\n }\\r\\n \\r\\n AddToEkkaOnLogin();\\r\\n },\\r\\n constructCard: function (data, cardIndex, eventType, containerId, containerSelector, callback) {\\r\\n type = eventType;\\r\\n let tags, locations, items, description;\\r\\n\\r\\n if (type !== 'showbag') {\\r\\n tags = data.categories && data.categories != null\\r\\n ? data.categories.map(({ name }) => `
    ${name}
    `).join('')\\r\\n : '';\\r\\n\\r\\n locations = data.location && data.location != null\\r\\n ? data.location.map(({ mapImageUrl, name }) => ekkaMapUrl && mapImageUrl ? `${name}` : name).join(', ')\\r\\n : '';\\r\\n }\\r\\n else {\\r\\n tags = data.keywordList && data.keywordList != null\\r\\n ? data.keywordList.map(keyword => `
    ${keyword}
    `).join('')\\r\\n : '';\\r\\n\\r\\n //locations = data.stalls && data.stalls != null\\r\\n // ? data.stalls.map(({ boundingRectangle, stallName }) => boundingRectangle ? `${stallName}` : stallName).join(', ')\\r\\n // : '';\\r\\n\\r\\n locations = data.stalls && data.stalls != null\\r\\n ? data.stalls.map(({ boundingRectangle, stallName }) => ekkaMapUrl && stallName ? `${stallName}` : stallName).join(', ')\\r\\n : '';\\r\\n\\r\\n items = data.items && data.items != null\\r\\n ? data.items.map(({ details, quantity }) => quantity ? `
  • ${details} x ${quantity}
  • ` : `
  • ${details}
  • `).join('')\\r\\n : '';\\r\\n\\r\\n description = data.items && data.items != null\\r\\n ? data.items\\r\\n .filter(item => item.quantity === '')\\r\\n .map(({ details }) => `

    ${details}

    `)\\r\\n .join('')\\r\\n : '';\\r\\n }\\r\\n\\r\\n var page = getDestinationPageLink(data.id);\\r\\n \\r\\n const baseCard = `\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n ${constructHeader(data.imageUrl, tags, data.price)}\\r\\n
    \\r\\n
    \\r\\n ${constructContent(data.name, locations, data.description || data.details, items, description, cardIndex, data.actualPrice)}\\r\\n
    \\r\\n
    ${page}
    \\r\\n
    \\r\\n ${constructSchedule(data.instances, cardIndex, data.openingTime, data.closingTime, data.timeslotDisplay, null, data.id)}\\r\\n
    \\r\\n
    \\r\\n
    \\r\\n `;\\r\\n\\r\\n $(`.${containerId} .${containerSelector}`).append(baseCard);\\r\\n\\r\\n $('#read-more-' + cardIndex).append(`Read More`);\\r\\n\\r\\n const readMoreButton = document.getElementById('readMoreButton' + cardIndex);\\r\\n if (readMoreButton) {\\r\\n readMoreButton.addEventListener('click', function () {\\r\\n type = eventType;\\r\\n openShowMeModal(data.imageUrl, tags, data.price, data.name, locations, data.description || data.details, items, description, cardIndex, data.instances, data.id, data.name, data.openingTime, data.closingTime, data.timeslotDisplay, null, data.id, data.actualPrice);\\r\\n });\\r\\n }\\r\\n\\r\\n addDatesListener(cardIndex, data.instances, false, data.openingTime, data.closingTime, data.timeslotDisplay, null, data.id);\\r\\n\\r\\n const addEkkaButton = document.getElementById('addEkkaButton' + cardIndex);\\r\\n if (addEkkaButton) {\\r\\n addEkkaButton.addEventListener('click', function () {\\r\\n type = eventType;\\r\\n addToEkka(cardIndex, false, null);\\r\\n if (callback) {\\r\\n callback();\\r\\n }\\r\\n });\\r\\n }\\r\\n },\\r\\n openModal: function (data, eventType, ekkaItems) {\\r\\n myEkkaItems = ekkaItems;\\r\\n\\r\\n type = eventType;\\r\\n let tags, locations, items, description;\\r\\n\\r\\n if (type !== 'showbag') {\\r\\n tags = data.categories && data.categories != null\\r\\n ? data.categories.map(({ name }) => `
    ${name}
    `).join('')\\r\\n : '';\\r\\n\\r\\n locations = data.location && data.location != null\\r\\n ? data.location.map(({ mapImageUrl, name }) => ekkaMapUrl && mapImageUrl ? `${name}` : name).join(', ')\\r\\n : '';\\r\\n }\\r\\n else {\\r\\n tags = data.keywordList && data.keywordList != null\\r\\n ? data.keywordList.map(keyword => `
    ${keyword}
    `).join('')\\r\\n : '';\\r\\n\\r\\n //locations = data.stalls && data.stalls != null\\r\\n // ? data.stalls.map(({ boundingRectangle, stallName }) => boundingRectangle ? `${stallName}` : stallName).join(', ')\\r\\n // : '';\\r\\n\\r\\n locations = data.stalls && data.stalls != null\\r\\n ? data.stalls.map(({ boundingRectangle, stallName }) => ekkaMapUrl && stallName ? `${stallName}` : stallName).join(', ')\\r\\n : '';\\r\\n\\r\\n items = data.items && data.items != null\\r\\n ? data.items.map(({ details, quantity }) => quantity ? `
  • ${details} x ${quantity}
  • ` : `
  • ${details}
  • `).join('')\\r\\n : '';\\r\\n\\r\\n description = data.items && data.items != null\\r\\n ? data.items\\r\\n .filter(item => item.quantity === '')\\r\\n .map(({ details }) => `

    ${details}

    `)\\r\\n .join('')\\r\\n : '';\\r\\n }\\r\\n \\r\\n openShowMeModal(data.imageUrl, tags, data.price, data.name, locations, data.description || data.details, items, description, \\\"modal-showme-itinerary\\\", data.instances, data.id, data.name, data.openingTime, data.closingTime, data.timeslotDisplay, null, data.id, data.actualPrice);\\r\\n },\\r\\n constructAddedEkka: function (ekkaItem) {\\r\\n myEkkaItems = [];\\r\\n myEkkaItems.push(ekkaItem);\\r\\n constructAddedEkkaDates('.showme-card', '.showme-card-wrapper');\\r\\n },\\r\\n initDestinationPages: function () {\\r\\n getDestinationPages();\\r\\n },\\r\\n makeAjaxRequest\\r\\n }\\r\\n});\"","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\nmodule.exports = function(src) {\n\tfunction log(error) {\n\t\t(typeof console !== \"undefined\")\n\t\t&& (console.error || console.log)(\"[Script Loader]\", error);\n\t}\n\n\t// Check for IE =< 8\n\tfunction isIE() {\n\t\treturn typeof attachEvent !== \"undefined\" && typeof addEventListener === \"undefined\";\n\t}\n\n\ttry {\n\t\tif (typeof execScript !== \"undefined\" && isIE()) {\n\t\t\texecScript(src);\n\t\t} else if (typeof eval !== \"undefined\") {\n\t\t\teval.call(null, src);\n\t\t} else {\n\t\t\tlog(\"EvalError: No eval function available\");\n\t\t}\n\t} catch (error) {\n\t\tlog(error);\n\t}\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","require(\"!!C:\\\\Users\\\\cge\\\\Documents\\\\Projects\\\\rna-ekka-umbraco-website\\\\RNAEkka.Web\\\\node_modules\\\\script-loader\\\\addScript.js\")(require(\"!!C:\\\\Users\\\\cge\\\\Documents\\\\Projects\\\\rna-ekka-umbraco-website\\\\RNAEkka.Web\\\\node_modules\\\\raw-loader\\\\index.js!C:\\\\Users\\\\cge\\\\Documents\\\\Projects\\\\rna-ekka-umbraco-website\\\\RNAEkka.Web\\\\wwwroot\\\\scripts\\\\rna-events.js\"))"],"names":["module","exports","src","log","error","console","execScript","attachEvent","addEventListener","eval","call","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__"],"sourceRoot":""}