\n \n \n\n\n","import {differenceInCalendarMonths, differenceInYears, format} from \"date-fns\";\n\n/**\n * Formats an interval (date range) into a string, omitting parts as\n * appropriate.\n *\n * @example\n * formatInterval(new Date('2025-05-01'), new Date('2025-05-01')) // 1 May 2025\n * formatInterval(new Date('2025-05-01'), new Date('2025-05-03')) // 1-3 May 2025\n * formatInterval(new Date('2025-04-31'), new Date('2025-05-01')) // 30 Apr - 1 May 2025\n * formatInterval(new Date('2025-05-01'), new Date('2026-05-01')) // 1 May 2025 - 1 May 2026\n *\n * @param {number|Date|string} a The start (earlier) date of the interval\n * @param {number|Date|string} [b] The end (later) date of the interval\n * @returns string\n */\nexport function formatInterval(a, b) {\n if (!b || a === b) {\n // Dates are the same or no end date\n // Returns something like \"3 May 2025\"\n return format(b, 'd MMM y');\n }\n else if (differenceInCalendarMonths(b, a) === 0) {\n // Dates are in the same month\n // Returns something like \"3-4 May 2025\"\n return `${format(a, 'd')}-${format(b, 'd MMM y')}`;\n }\n else if (differenceInYears(b, a) === 0) {\n // Dates are in the same year\n // Returns something like \"30 May - 2 Jun 2025\"\n return `${format(a, 'd MMM')} - ${format(b, 'd MMM y')}`;\n }\n else {\n // Dates are in different years\n // Returns something like \"1 Dec 2025 - 1 Jan 2026\"\n return `${format(a, 'd MMM y')} - ${format(b, 'd MMM y')}`;\n }\n}","import { render } from \"./EventCard.vue?vue&type=template&id=26fe5386\"\nimport script from \"./EventCard.vue?vue&type=script&lang=js\"\nexport * from \"./EventCard.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/vsts/work/1/s/src/Thruxton.Website.Web/thruxton-website/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n \n \n\n
\n
\n {{remaining.days}}\n Days\n
\n
\n {{remaining.hours}}\n Hrs\n
\n
\n {{remaining.minutes}}\n Mins\n
\n
\n {{remaining.seconds}}\n Secs\n
\n
\n\n
\n \n
{{title}}
\n \n
From {{price}} {{ticketsFromPostfix}}
\n \n
\n \n \n \n\n\n","import { render } from \"./EventCardPrimary.vue?vue&type=template&id=1588f8e6\"\nimport script from \"./EventCardPrimary.vue?vue&type=script&lang=js\"\nexport * from \"./EventCardPrimary.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/vsts/work/1/s/src/Thruxton.Website.Web/thruxton-website/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./index.vue?vue&type=template&id=7dd91777\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/vsts/work/1/s/src/Thruxton.Website.Web/thruxton-website/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["class","formatInterval","a","b","differenceInCalendarMonths","format","differenceInYears","components","Image","props","href","String","imgId","Number","imgAlt","startDate","endDate","title","desc","shortDesc","price","ticketsFromPostfix","computed","formattedDate","this","_createElementBlock","_hoisted_1","_createElementVNode","$props","_hoisted_3","_createVNode","_component_image_vue","width","height","alt","_hoisted_4","_toDisplayString","_hoisted_5","$options","innerHTML","_hoisted_7","ButtonVue","data","remaining","days","hours","minutes","seconds","mounted","startTimer","methods","timer","setInterval","date","Date","getRemainingTime","isNil","stopTimer","Object","keys","forEach","key","toString","padStart","clearInterval","_hoisted_2","$data","_hoisted_6","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_19","_component_button_vue","label","_hoisted_20","Lister","EventCard","EventCardPrimary","Alert","_createBlock","_component_lister","_normalizeProps","_guardReactiveProps","_ctx","$attrs","scope","featured","_component_event_card_primary","_mergeProps","_Fragment","_renderList","results","item","_component_event_card","id","length","_component_alert"],"sourceRoot":""}