{"version":3,"sources":["booking.js","calendar.js","datepicker.js","gallery.js","navigation.js","serviceworker.js","preload.js","signup.js"],"names":["messages","_default","field","concat","date_format","_ref","format","_slicedToArray","decimal","_ref4$","arguments","length","undefined","decimals","digits","_ref5","email","min","_ref7","numeric","regex","required","Vue","use","VeeValidate","locale","classes","dictionary","da","document","getElementById","app","el","data","loading","success","error","message","active","bookingId","registration","Email","BookingsId","Buildings","computed","hasBuildings","_this","this","Object","keys","find","x","mounted","checkBuildings","methods","preSelect","click","submit","bookingsId","_this2","$validator","validate","then","valid","xhr","XMLHttpRequest","onload","status","JSON","parse","response","console","log","open","setRequestHeader","send","stringify","distance","firstError","querySelector","offsetTop","scrollTop","clientTop","scrollTo","top","behavior","openBooking","getElementsByTagName","classList","add","closeBooking","remove","addEventListener","calendarEl","FullCalendar","Calendar","events","dates","contentHeight","headerToolbar","right","displayEventTime","displayEventEnd","render","flatpickr","enableTime","altInput","altFormat","weekNumbers","minDate","Date","lightGallery","subHtmlSelectorRelative","navigationTrigger","getElementsByClassName","navigationMenu","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","toggle","setTimeout","navigator","window","register","serviceWorker","scope","err","swRegistration","location","hash","signUpId","addons","Addons","TotalPrice","parseInt","getAttribute","IsOnWaitingList","SignUpId","PhotoConsentDiasshow","PhotoConsentWebsite","PhotoConsentFacebook","PhotoConsentPress","PhotoConsentNone","noPhotoConsent","givenPhotoConcent","consentValid","watch","newSignUp","replace","origin","pathname","reload","campId","girlsFull","CampId","Gender","boysFull","forEach","key","price","push","Title","Price","openSignUp","closeSignUp"],"mappings":"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","file":"hvidekilde.min.js","sourcesContent":["const messages = {\r\n _default: (field) => `${field} er ikke gyldig.`,\r\n date_format: (field, [format]) =>\r\n `${field} skal være i formatet: ${format}.`,\r\n decimal: (field, [decimals = '*'] = []) =>\r\n `${field} skal være numerisk og må maksimalt indeholde${\r\n !decimals || decimals === '*' ? '' : ' ' + decimals\r\n } decimaler.`,\r\n digits: (field, [length]) => `${field} skal være et tal på ${length} cifre.`,\r\n email: (field) => `${field} skal være en gyldig email.`,\r\n min: (field, [length]) => `${field} skal minimum være ${length} karakterer.`,\r\n numeric: (field) => `${field} skal være numerisk.`,\r\n regex: (field) => `${field} skal have et gyldigt format.`,\r\n required: (field) => `${field} skal udfyldes.`,\r\n}\r\n\r\nVue.use(VeeValidate, {\r\n locale: 'da',\r\n classes: true,\r\n dictionary: {\r\n da: { messages },\r\n },\r\n})\r\n\r\nif (document.getElementById('js-booking')) {\r\n var app = new Vue({\r\n el: '#js-booking',\r\n data: {\r\n loading: false,\r\n success: false,\r\n error: false,\r\n message: null,\r\n active: false,\r\n bookingId: null,\r\n registration: {\r\n Email: '',\r\n BookingsId: null,\r\n Buildings: {},\r\n },\r\n },\r\n\r\n computed: {\r\n hasBuildings() {\r\n return !!Object.keys(this.registration.Buildings).find(\r\n (x) => this.registration.Buildings[x] === true\r\n )\r\n },\r\n },\r\n\r\n mounted() {\r\n this.checkBuildings()\r\n },\r\n\r\n methods: {\r\n checkBuildings() {\r\n const preSelect = document.getElementById('Buildings2895')\r\n if (preSelect) {\r\n preSelect.click()\r\n }\r\n },\r\n submit(bookingsId) {\r\n this.registration.BookingsId = bookingsId\r\n\r\n this.$validator.validate().then((valid) => {\r\n if (!valid) {\r\n var firstError = document.querySelector('.invalid')\r\n var distance =\r\n firstError.offsetTop -\r\n firstError.scrollTop +\r\n firstError.clientTop\r\n\r\n document.getElementById('js-booking').scrollTo({\r\n top: distance - 10,\r\n behavior: 'smooth',\r\n })\r\n } else {\r\n this.loading = true\r\n\r\n var xhr = new XMLHttpRequest()\r\n\r\n xhr.onload = () => {\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n this.loading = false\r\n this.success = true\r\n this.registration = JSON.parse(xhr.response)\r\n } else {\r\n this.success = false\r\n this.error = true\r\n this.loading = false\r\n this.message = xhr.response\r\n console.log('Error')\r\n }\r\n }\r\n\r\n xhr.open('POST', '/Umbraco/Api/Booking/RequestBooking')\r\n xhr.setRequestHeader(\r\n 'Content-Type',\r\n 'application/json;charset=UTF-8'\r\n )\r\n xhr.send(JSON.stringify(this.registration))\r\n }\r\n })\r\n },\r\n openBooking() {\r\n this.active = true\r\n document\r\n .getElementsByTagName('body')[0]\r\n .classList.add('overlay-open')\r\n document\r\n .getElementsByTagName('html')[0]\r\n .classList.add('overlay-open')\r\n },\r\n closeBooking() {\r\n this.active = false\r\n document\r\n .getElementsByTagName('body')[0]\r\n .classList.remove('overlay-open')\r\n document\r\n .getElementsByTagName('html')[0]\r\n .classList.remove('overlay-open')\r\n },\r\n },\r\n })\r\n}\r\n","document.addEventListener('DOMContentLoaded', function () {\r\n var calendarEl = document.getElementById('calendar')\r\n\r\n if (calendarEl) {\r\n let contentHeight = 600\r\n\r\n var calendar = new FullCalendar.Calendar(calendarEl, {\r\n events: dates,\r\n locale: 'da',\r\n contentHeight,\r\n headerToolbar: {\r\n right: 'prevYear,prev,today,next,nextYear',\r\n },\r\n displayEventTime: false,\r\n displayEventEnd: true,\r\n })\r\n\r\n calendar.render()\r\n }\r\n})\r\n","flatpickr('.datepicker', {\r\n locale: 'da',\r\n enableTime: true,\r\n altInput: true,\r\n altFormat: 'd. M Y H:i',\r\n weekNumbers: true,\r\n minDate: new Date(),\r\n})\r\n","lightGallery(document.getElementById('js-gallery'), {\r\n subHtmlSelectorRelative: true\r\n}); ","const navigationTrigger = document.getElementsByClassName('js-navigation-trigger')[0];\r\nconst navigationMenu = document.getElementsByClassName('js-navigation-menu')[0];\r\n\r\nnavigationTrigger.addEventListener(\"click\", () => {\r\n navigationMenu.classList.toggle(\"navigation__menu--active\");\r\n navigationTrigger.classList.toggle(\"navigation__trigger--active\");\r\n});","//Register Service Worker\r\nif ('serviceWorker' in navigator) {\r\n window.addEventListener('load', function () {\r\n navigator.serviceWorker.register('/sw.js').then(\r\n function (registration) {\r\n // Registration was successful\r\n console.log(\r\n 'ServiceWorker registration successful with scope: ',\r\n registration.scope\r\n )\r\n\r\n var swRegistration = registration\r\n },\r\n function (err) {\r\n // registration failed :(\r\n console.log('ServiceWorker registration failed: ', err)\r\n }\r\n )\r\n })\r\n}\r\n","document.addEventListener('DOMContentLoaded', function () {\r\n setTimeout(() => {\r\n document.getElementsByTagName('body')[0].classList.remove('preload')\r\n }, 100)\r\n});\r\n","const messages = {\r\n _default: (field) => `${field} er ikke gyldig.`,\r\n date_format: (field, [format]) =>\r\n `${field} skal være i formatet: ${format}.`,\r\n decimal: (field, [decimals = '*'] = []) =>\r\n `${field} skal være numerisk og må maksimalt indeholde${\r\n !decimals || decimals === '*' ? '' : ' ' + decimals\r\n } decimaler.`,\r\n digits: (field, [length]) => `${field} skal være et tal på ${length} cifre.`,\r\n email: (field) => `${field} skal være en gyldig email.`,\r\n min: (field, [length]) => `${field} skal minimum være ${length} karakterer.`,\r\n numeric: (field) => `${field} skal være numerisk.`,\r\n regex: (field) => `${field} skal have et gyldigt format.`,\r\n required: (field) => `${field} skal udfyldes.`,\r\n}\r\n\r\nVue.use(VeeValidate, {\r\n locale: 'da',\r\n classes: true,\r\n dictionary: {\r\n da: { messages },\r\n },\r\n})\r\n\r\nif (document.getElementById('js-signup')) {\r\n var app = new Vue({\r\n el: '#js-signup',\r\n data() {\r\n return {\r\n loading: false,\r\n success: false,\r\n error: false,\r\n message: null,\r\n active: window.location.hash === '#signup',\r\n signUpId: null,\r\n addons: {},\r\n registration: {\r\n Addons: [],\r\n TotalPrice: parseInt(\r\n document\r\n .getElementById('js-signup')\r\n .getAttribute('data-camp-price')\r\n ),\r\n IsOnWaitingList: false,\r\n Email: '',\r\n SignUpId: null,\r\n PhotoConsentDiasshow: false,\r\n PhotoConsentWebsite: false,\r\n PhotoConsentFacebook: false,\r\n PhotoConsentPress: false,\r\n PhotoConsentNone: !document.getElementById('PhotoConsent'),\r\n },\r\n }\r\n },\r\n computed: {\r\n noPhotoConsent() {\r\n return this.registration.PhotoConsentNone\r\n },\r\n givenPhotoConcent() {\r\n return (\r\n this.registration.PhotoConsentDiasshow ||\r\n this.registration.PhotoConsentWebsite ||\r\n this.registration.PhotoConsentFacebook ||\r\n this.registration.PhotoConsentPress\r\n )\r\n },\r\n consentValid() {\r\n return this.givenPhotoConcent || this.registration.PhotoConsentNone\r\n },\r\n },\r\n watch: {\r\n noPhotoConsent() {\r\n if (this.registration.PhotoConsentNone) {\r\n this.registration.PhotoConsentDiasshow = false\r\n this.registration.PhotoConsentWebsite = false\r\n this.registration.PhotoConsentFacebook = false\r\n this.registration.PhotoConsentPress = false\r\n }\r\n },\r\n givenPhotoConcent() {\r\n if (this.givenPhotoConcent) {\r\n this.registration.PhotoConsentNone = false\r\n }\r\n },\r\n },\r\n methods: {\r\n newSignUp() {\r\n window.location.replace(\r\n window.location.origin + window.location.pathname + '#signup'\r\n )\r\n window.location.reload()\r\n },\r\n submit(campId) {\r\n this.registration.CampId = campId\r\n this.registration.TotalPrice = parseInt(\r\n document\r\n .getElementById('js-signup')\r\n .getAttribute('data-camp-price')\r\n )\r\n\r\n if (this.registration.Gender == 'Dreng') {\r\n var boysFull = document\r\n .getElementById('js-signup')\r\n .getAttribute('data-boys-full')\r\n\r\n if (boysFull && boysFull == 'True') {\r\n this.registration.IsOnWaitingList = true\r\n }\r\n }\r\n\r\n if (this.registration.Gender == 'Pige') {\r\n var girlsFull = document\r\n .getElementById('js-signup')\r\n .getAttribute('data-girls-full')\r\n\r\n if (girlsFull && girlsFull == 'True') {\r\n this.registration.IsOnWaitingList = true\r\n }\r\n }\r\n\r\n Object.keys(this.addons).forEach((key) => {\r\n const el = document.getElementById(key)\r\n const price = parseInt(el.getAttribute('data-price'))\r\n\r\n if (this.addons[key]) {\r\n this.registration.TotalPrice =\r\n this.registration.TotalPrice + price\r\n\r\n this.registration.Addons.push({\r\n Title: el.getAttribute('data-label'),\r\n Price: price,\r\n })\r\n }\r\n })\r\n\r\n this.$validator.validate().then((valid) => {\r\n if (!valid) {\r\n var firstError = document.querySelector('.invalid')\r\n var distance =\r\n firstError.offsetTop -\r\n firstError.scrollTop +\r\n firstError.clientTop\r\n\r\n document.getElementById('js-signup').scrollTo({\r\n top: distance - 10,\r\n behavior: 'smooth',\r\n })\r\n } else {\r\n this.loading = true\r\n\r\n var xhr = new XMLHttpRequest()\r\n\r\n xhr.onload = () => {\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n this.loading = false\r\n this.success = true\r\n this.registration = JSON.parse(xhr.response)\r\n } else {\r\n this.success = false\r\n this.error = true\r\n this.loading = false\r\n this.message = xhr.response\r\n console.log('Error')\r\n }\r\n }\r\n\r\n xhr.open('POST', '/Umbraco/Api/Camp/SignUp')\r\n xhr.setRequestHeader(\r\n 'Content-Type',\r\n 'application/json;charset=UTF-8'\r\n )\r\n xhr.send(JSON.stringify(this.registration))\r\n }\r\n })\r\n },\r\n openSignUp() {\r\n this.active = true\r\n document\r\n .getElementsByTagName('body')[0]\r\n .classList.add('overlay-open')\r\n document\r\n .getElementsByTagName('html')[0]\r\n .classList.add('overlay-open')\r\n },\r\n closeSignUp() {\r\n this.active = false\r\n document\r\n .getElementsByTagName('body')[0]\r\n .classList.remove('overlay-open')\r\n document\r\n .getElementsByTagName('html')[0]\r\n .classList.remove('overlay-open')\r\n },\r\n },\r\n })\r\n}\r\n"]}