{"version":3,"file":"setup-CdK0dmbJ-601d0a.js","sources":["../../ClientSPA/src/composables/urlUtils.ts","../../ClientSPA/src/boot/setup.ts"],"sourcesContent":["function parseURL(url: string) {\r\n const parsedURL = new URL(url);\r\n const urlParams = new URLSearchParams(url);\r\n\r\n const path = parsedURL.pathname.split('/').filter(Boolean);\r\n\r\n const queryParams = {};\r\n for (const [key, value] of parsedURL.searchParams) {\r\n queryParams[key] = value;\r\n }\r\n\r\n return {\r\n path: path,\r\n urlSearchParams: urlParams,\r\n queryParams: queryParams,\r\n };\r\n}\r\n\r\nfunction getPropertyCodeOrId() {\r\n let propertyCodeOrId = '';\r\n const result = parseURL(window.location.href);\r\n\r\n const matchingSegments = [\r\n 'book',\r\n 'manageaccount',\r\n 'forgotpassword',\r\n 'resetpassword',\r\n 'register',\r\n 'precheckin',\r\n ];\r\n\r\n const segmentIndex = result.path.findIndex((segment) =>\r\n matchingSegments.includes(segment?.toLowerCase()),\r\n );\r\n\r\n propertyCodeOrId =\r\n segmentIndex !== -1 ? result.path[segmentIndex + 1] : undefined;\r\n\r\n if (!propertyCodeOrId) {\r\n const metaTags = document.querySelector('meta[name=\"propertyId\"]');\r\n if (metaTags != null) {\r\n const metaTagValue = metaTags.attributes['content'];\r\n propertyCodeOrId = metaTagValue.value;\r\n }\r\n }\r\n\r\n return propertyCodeOrId;\r\n}\r\n\r\nfunction getPropertyGroupCodeOrId() {\r\n let propertyGroupCodeOrId = '';\r\n const result = parseURL(window.location.href);\r\n\r\n const matchingSegments = ['bookgroup', 'propertygroup'];\r\n\r\n const segmentIndex = result.path.findIndex((segment) =>\r\n matchingSegments.includes(segment?.toLowerCase()),\r\n );\r\n\r\n propertyGroupCodeOrId =\r\n segmentIndex !== -1 ? result.path[segmentIndex + 1] : undefined;\r\n\r\n if (!propertyGroupCodeOrId) {\r\n const metaTags = document.querySelector('meta[name=\"propertyGroupId\"]');\r\n if (metaTags != null) {\r\n const metaTagValue = metaTags.attributes['content'];\r\n propertyGroupCodeOrId = metaTagValue.value;\r\n }\r\n }\r\n\r\n return propertyGroupCodeOrId;\r\n}\r\n\r\nfunction getAppViewValue(): boolean {\r\n const parsedUrl = parseURL(window.location.href);\r\n return parsedUrl.queryParams['appView'] == 'true';\r\n}\r\n\r\nexport default function useUrlUtils() {\r\n return {\r\n parsePageUrl: function () {\r\n return parseURL(window.location.href);\r\n },\r\n parseURL: parseURL,\r\n getPropertyCodeOrId: getPropertyCodeOrId,\r\n getPropertyGroupCodeOrId: getPropertyGroupCodeOrId,\r\n getAppViewValue: getAppViewValue,\r\n };\r\n}\r\n","/*\r\nSetup the property or property group page.\r\n*/\r\n\r\nimport { boot } from 'quasar/wrappers';\r\nimport { Services } from 'src/services/Services';\r\nimport { Api } from 'src/services/api/Api';\r\nimport useUrlUtils from 'src/composables/urlUtils.ts';\r\nimport VueGtag from 'vue-gtag';\r\nimport { usePropertyStore } from 'src/stores/propertyStore';\r\nimport { usePropertyGroupStore } from 'src/stores/propertyGroupStore';\r\nimport { useAvailabilityStore } from 'src/stores/availabilityStore';\r\nimport { useCurrencyStore } from 'src/stores/currencyStore';\r\nimport { useRoomTypeConfigurationStore } from 'src/stores/roomTypeConfigurationStore';\r\nimport { useStaticDataStore } from 'src/stores/staticDataStore';\r\nimport { useAuthStore } from 'src/stores/authStore';\r\nimport { i18n } from 'boot/i18n';\r\nimport { useNewBookingStore } from 'src/stores/newBookingStore';\r\nimport { useRestaurantTableStore } from 'src/stores/restaurantTableStore';\r\n\r\nconst utils = useUrlUtils();\r\nconst apiService = Services.getService(Api);\r\n\r\n// \"async\" is optional;\r\n// more info on params: https://v2.quasar.dev/quasar-cli/boot-files\r\nexport default boot(async ({ app, router, store }) => {\r\n const propertyCodeOrId = utils.getPropertyCodeOrId();\r\n const propertyGroupCodeOrId = utils.getPropertyGroupCodeOrId();\r\n\r\n if (propertyCodeOrId) {\r\n return apiService.propertyGet(propertyCodeOrId).then((propertyResponse) => {\r\n const propertyStore = usePropertyStore(store);\r\n const availabilityStore = useAvailabilityStore(store);\r\n const currencyStore = useCurrencyStore(store);\r\n const roomTypeConfigurationStore = useRoomTypeConfigurationStore(store);\r\n const staticDataStore = useStaticDataStore(store);\r\n const authStore = useAuthStore(store);\r\n const restaurantTableStore = useRestaurantTableStore();\r\n\r\n const newBookingStore = useNewBookingStore(store);\r\n newBookingStore.isAppView = utils.getAppViewValue();\r\n\r\n const propertyConfigData = propertyResponse.data;\r\n\r\n authStore.getUser(propertyConfigData.PropertyId);\r\n\r\n propertyStore.setPropertyData(propertyConfigData);\r\n\r\n staticDataStore.getStaticData(propertyConfigData.PropertyId);\r\n availabilityStore.getAvailabilityCache();\r\n currencyStore.getExchangeRates();\r\n roomTypeConfigurationStore.getRoomTypeConfigurationCache();\r\n\r\n if (propertyConfigData.RestaurantBookingServiceActive) {\r\n restaurantTableStore.getRestaurants(propertyConfigData.PropertyId);\r\n }\r\n\r\n currencyStore.selectedCurrency = propertyConfigData.Currency;\r\n\r\n const gtaId = propertyStore.googleTagManagerContainerId;\r\n if (gtaId) {\r\n app.use(\r\n VueGtag,\r\n {\r\n includes: [\r\n {\r\n id: gtaId,\r\n },\r\n ],\r\n config: {\r\n id: gtaId,\r\n params: {\r\n anonymize_ip: true,\r\n },\r\n },\r\n // https://github.com/MatteoGabriele/vue-gtag/issues/383\r\n bootstrap: false, // To comply with GDPR\r\n enabled: false,\r\n },\r\n router,\r\n );\r\n }\r\n\r\n i18n.global.mergeLocaleMessage('en-GB', {\r\n ['accommodationUnitPlural']:\r\n propertyResponse.data.AccommodationUnitPlural,\r\n ['accommodationUnitSingular']:\r\n propertyResponse.data.AccommodationUnitSingular,\r\n ['postCode']: propertyResponse.data.PostCodeLabel,\r\n ['stateOrCounty']: propertyResponse.data.CountyLabel,\r\n ['search']: {\r\n ['promoCodeLabel']:\r\n propertyResponse.data.PromoCodeLabel ?? 'Promo Code',\r\n },\r\n });\r\n });\r\n } else if (propertyGroupCodeOrId) {\r\n return apiService\r\n .propertyGroupGet(propertyGroupCodeOrId)\r\n .then((propertyGroupResponse) => {\r\n const propertyGroupStore = usePropertyGroupStore(store);\r\n\r\n const propertyGroupConfigData = propertyGroupResponse.data;\r\n\r\n propertyGroupStore.setPropertyGroupData(propertyGroupConfigData);\r\n });\r\n } else {\r\n return;\r\n }\r\n});\r\n"],"names":["parseURL","url","parsedURL","urlParams","path","queryParams","key","value","getPropertyCodeOrId","propertyCodeOrId","result","matchingSegments","segmentIndex","segment","metaTags","getPropertyGroupCodeOrId","propertyGroupCodeOrId","getAppViewValue","useUrlUtils","utils","apiService","Services","Api","setup","boot","app","router","store","propertyResponse","propertyStore","usePropertyStore","availabilityStore","useAvailabilityStore","currencyStore","useCurrencyStore","roomTypeConfigurationStore","useRoomTypeConfigurationStore","staticDataStore","useStaticDataStore","authStore","useAuthStore","restaurantTableStore","useRestaurantTableStore","newBookingStore","useNewBookingStore","propertyConfigData","gtaId","VueGtag","i18n","propertyGroupResponse","propertyGroupStore","usePropertyGroupStore","propertyGroupConfigData"],"mappings":"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"}