{"version":3,"file":"main.3e1bd4ad06677c5c.js","mappings":"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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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","sources":["./projects/com-logging/src/lib/advanced-console-log-client.service.ts","./projects/com-logging/src/lib/console-log-client.service.ts","./projects/com-logging/src/lib/log-client.interface.ts","./projects/com-logging/src/lib/log.service.ts","./projects/com-logging/src/lib/logging.module.ts","./projects/com-logging/src/public-api.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/components/giftcard-form/giftcard-form.component.ts","./src/app/components/giftcard-form/giftcard-form.component.html","./src/app/components/login-form/login-form.component.ts","./src/app/components/login-form/login-form.component.html","./src/app/components/promo-form/promo-form.component.ts","./src/app/components/promo-form/promo-form.component.html","./src/app/core/app-error.handler.ts","./src/app/core/core.module.ts","./src/app/core/index.ts","./src/app/core/modules/config/config.module.ts","./src/app/core/modules/config/config.service.ts","./src/app/core/modules/config/data-config.service.ts","./src/app/core/modules/config/index.ts","./src/app/core/modules/config/models/index.ts","./src/app/core/modules/customer/customer.module.ts","./src/app/core/modules/customer/customer.service.ts","./src/app/core/modules/customer/index.ts","./src/app/core/modules/hotel/data-hotel.service.ts","./src/app/core/modules/hotel/hotel.module.ts","./src/app/core/modules/hotel/hotel.service.ts","./src/app/core/modules/hotel/index.ts","./src/app/core/modules/hotel/models/data.model.ts","./src/app/core/modules/hotel/models/index.ts","./src/app/core/modules/index.ts","./src/app/core/modules/locale/index.ts","./src/app/core/modules/locale/locale.module.ts","./src/app/core/modules/locale/locale.service.ts","./src/app/core/modules/payment/index.ts","./src/app/core/modules/payment/payment.module.ts","./src/app/core/modules/payment/payment.service.ts","./src/app/core/modules/payment/reservation.service.ts","./src/app/core/modules/promotion/data-promotion.service.ts","./src/app/core/modules/promotion/index.ts","./src/app/core/modules/promotion/promotion.module.ts","./src/app/core/modules/promotion/promotion.service.ts","./src/app/core/modules/tracking/facebook-pixel-client.service.ts","./src/app/core/modules/tracking/google-analytics-client.service.ts","./src/app/core/modules/tracking/google-hotel-ads-client.service.ts","./src/app/core/modules/tracking/google-tag-manager-client.service.ts","./src/app/core/modules/tracking/index.ts","./src/app/core/modules/tracking/spectra-ads-client.service.ts","./src/app/core/modules/tracking/tracking.module.ts","./src/app/core/modules/tracking/tracking.service.ts","./src/app/core/services/application-state.service.ts","./src/app/core/services/basket.service.ts","./src/app/core/services/booking.service.ts","./src/app/core/services/index.ts","./src/app/core/services/loader.ts","./src/app/core/services/server-log-client.service.ts","./src/app/helpers/action-stack.ts","./src/app/helpers/config-handler.ts","./src/app/helpers/custom-error.ts","./src/app/helpers/date-helper.ts","./src/app/helpers/guest-type.enum.ts","./src/app/helpers/guid-helper.ts","./src/app/helpers/in-memory-cache.ts","./src/app/helpers/index.ts","./src/app/helpers/navigation-helper.ts","./src/app/helpers/room-guests.ts","./src/app/helpers/spectra-date.ts","./src/app/helpers/storage-client.ts","./src/app/modules/country/countries.ts","./src/app/modules/country/country.module.ts","./src/app/modules/country/country.service.ts","./src/app/modules/country/index.ts","./src/app/modules/loader/index.ts","./src/app/modules/loader/loader-item.component.ts","./src/app/modules/loader/loader-item.component.html","./src/app/modules/loader/loader.component.ts","./src/app/modules/loader/loader.component.html","./src/app/modules/loader/loader.module.ts","./src/app/modules/loader/loader.ts","./src/app/modules/messenger/index.ts","./src/app/modules/messenger/messenger.component.ts","./src/app/modules/messenger/messenger.component.html","./src/app/modules/messenger/messenger.module.ts","./src/app/modules/messenger/messenger.ts","./src/app/modules/step-list/index.ts","./src/app/modules/step-list/step-list.component.ts","./src/app/modules/step-list/step-list.component.html","./src/app/modules/step-list/step-list.module.ts","./src/app/modules/step-list/step-list.ts","./src/app/modules/translation/index.ts","./src/app/modules/translation/translate.pipe.ts","./src/app/modules/translation/translation.module.ts","./src/app/pages/add-on/add-on-card-modal.component.ts","./src/app/pages/add-on/add-on-card-modal.component.html","./src/app/pages/add-on/add-on-card.component.ts","./src/app/pages/add-on/add-on-card.component.html","./src/app/pages/add-on/add-on.component.ts","./src/app/pages/add-on/add-on.component.html","./src/app/pages/conference/conference-details/conference-details.component.ts","./src/app/pages/conference/conference-details/conference-details.component.html","./src/app/pages/conference/conference-rooms/conference-rooms.component.ts","./src/app/pages/conference/conference-rooms/conference-rooms.component.html","./src/app/pages/conference/conference-search/conference-search.component.ts","./src/app/pages/conference/conference-search/conference-search.component.html","./src/app/pages/customer/customer.component.ts","./src/app/pages/customer/customer.component.html","./src/app/pages/giftcard/details/giftcarddetails.component.ts","./src/app/pages/giftcard/details/giftcarddetails.component.html","./src/app/pages/giftcard/products/giftcard.component.ts","./src/app/pages/giftcard/products/giftcard.component.html","./src/app/pages/landing-page/landing-page.component.ts","./src/app/pages/landing-page/landing-page.component.html","./src/app/pages/payment-failed/payment-failed.component.ts","./src/app/pages/payment-failed/payment-failed.component.html","./src/app/pages/payment-link/payment-link.component.ts","./src/app/pages/payment-link/payment-link.component.html","./src/app/pages/payment/AcceptPayment.component.ts","./src/app/pages/payment/AcceptPayment.component.html","./src/app/pages/payment/flex-win-payment.component.ts","./src/app/pages/payment/flex-win-payment.component.html","./src/app/pages/ratesRoom/ratesRoom.component.ts","./src/app/pages/ratesRoom/ratesRoom.component.html","./src/app/pages/reciept/reciept.component.ts","./src/app/pages/reciept/reciept.component.html","./src/app/pages/room/room-lookup-error.ts","./src/app/pages/room/room.component.ts","./src/app/pages/room/room.component.html","./src/app/pages/search/calendar-guidance/calendar-guidance.component.ts","./src/app/pages/search/calendar-guidance/calendar-guidance.component.html","./src/app/pages/search/search-form.component.ts","./src/app/pages/search/search-form.component.html","./src/app/pages/search/search.component.ts","./src/app/pages/search/search.component.html","./src/app/pages/seating-standalone/seating-date-calendar.component.ts","./src/app/pages/seating-standalone/seating-date-calendar.component.html","./src/app/pages/seating-standalone/seating-standalone-card.component.ts","./src/app/pages/seating-standalone/seating-standalone-card.component.html","./src/app/pages/seating-standalone/seating-standalone.component.ts","./src/app/pages/seating-standalone/seating-standalone.component.html","./src/app/pages/seating-standalone/seating/seating-standalone-page.component.ts","./src/app/pages/seating-standalone/seating/seating-standalone-page.component.html","./src/app/pages/seating/seating.component.ts","./src/app/pages/seating/seating.component.html","./src/app/pages/table-reservation/guests/guests.component.ts","./src/app/pages/table-reservation/guests/guests.component.html","./src/app/pages/table-reservation/products/calendar-tile.component.ts","./src/app/pages/table-reservation/products/calendar-tile.component.html","./src/app/pages/table-reservation/products/products.component.ts","./src/app/pages/table-reservation/products/products.component.html","./src/app/shared/components/animation/slide-down/slide-down.component.ts","./src/app/shared/components/animation/slide-down/slide-down.component.html","./src/app/shared/components/basket/basket.component.ts","./src/app/shared/components/basket/basket.component.html","./src/app/shared/components/calendar-input/calendar-input.component.ts","./src/app/shared/components/calendar-input/calendar-input.component.html","./src/app/shared/components/calendar/calendar.component.ts","./src/app/shared/components/calendar/calendar.component.html","./src/app/shared/components/checkbox/checkbox.component.ts","./src/app/shared/components/checkbox/checkbox.component.html","./src/app/shared/components/dropdown/dropdown.component.ts","./src/app/shared/components/dropdown/dropdown.component.html","./src/app/shared/components/expandable-media-list/expandable-media-list.component.ts","./src/app/shared/components/expandable-media-list/expandable-media-list.component.html","./src/app/shared/components/popup/popup.component.ts","./src/app/shared/components/popup/popup.component.html","./src/app/shared/design/design-configuration.ts","./src/app/shared/directives/max-height.directive.ts","./src/app/shared/pipes/char.pipe.ts","./src/app/shared/pipes/date.pipe.ts","./src/app/shared/pipes/guests.pipe.ts","./src/app/shared/pipes/index.ts","./src/app/shared/pipes/number.pipe.ts","./src/app/shared/pipes/price.pipe.ts","./src/app/shared/shared.module.ts","./src/app/shared/validators/equal-to-validator.directive.ts","./src/app/shared/validators/has-lower-validator.directive.ts","./src/app/shared/validators/has-number-validator.directive.ts","./src/app/shared/validators/has-upper-validator.directive.ts","./src/app/shared/validators/index.ts","./src/environments/environment.prod.ts","./src/i18n/index.ts","./src/i18n/locale-da-DK.ts","./src/i18n/locale-de-DE.ts","./src/i18n/locale-en-GB.ts","./src/i18n/locale-fo-FO.ts","./src/i18n/locale-is-IS.ts","./src/i18n/locale-kl-GL.ts","./src/i18n/locale-nn-NO.ts","./src/i18n/locale-sv-SE.ts","./src/i18n/material/DatePickeri18n.ts","./src/main.ts","./src/styles/theme.ts","./node_modules/moment/locale|sync|/^/.*$","./src/i18n|eager|/^/locale/-.*$/|chunkName: [request]|groupOptions: {}|namespace object","./projects/com-logging/src/com-logging.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport dayjs from 'dayjs';\nimport { LogClient, LogEntry, LogLevel } from './log-client.interface';\n\n@Injectable()\nexport class AdvancedConsoleLogClientService implements LogClient {\n private isNextFrame = false;\n private frameIndex = 0;\n private logLevel = LogLevel.Debug;\n private showStack = false;\n\n log(entry: LogEntry) {\n if (entry.level >= this.logLevel) {\n this.renderFrame();\n const stack = this.getStack();\n const msg = `Frame[${this.frameIndex}] [${LogLevel[entry.level]}] ${dayjs(entry.date).format(\n 'YYYY-MM-DD HH:mm:ss',\n )} ${entry.msg} ${entry.data.map((item) => JSON.stringify(item, null, 2)).join('\\n')} ${\n this.showStack ? `\\n${stack.join('\\n')}` : `\\n at ${(stack[0] || '').replace(/.*\\(/, '(')}`\n }`;\n switch (entry.level) {\n case LogLevel.Critical:\n case LogLevel.Error:\n // eslint-disable-next-line no-console\n console.error(msg);\n break;\n case LogLevel.Warning:\n // eslint-disable-next-line no-console\n console.warn(msg);\n break;\n case LogLevel.Information:\n // eslint-disable-next-line no-console\n console.info(msg);\n break;\n default:\n // eslint-disable-next-line no-console\n console.log(msg);\n }\n }\n }\n\n private getStack() {\n return (new Error().stack || '').split('\\n').slice(7);\n }\n\n private renderFrame() {\n if (!this.isNextFrame) {\n this.frameIndex++;\n // eslint-disable-next-line no-console\n // console.log(`Frame[${this.frameIndex}] Started:`);\n this.isNextFrame = true;\n setTimeout(() => {\n this.isNextFrame = false;\n // eslint-disable-next-line no-console\n // console.log(`Frame[${this.frameIndex}] Ended.`);\n }, 0);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport dayjs from 'dayjs';\nimport { LogClient, LogEntry, LogLevel } from './log-client.interface';\n\n@Injectable()\nexport class ConsoleLogClientService implements LogClient {\n private logLevel = LogLevel.Debug;\n\n log(entry: LogEntry) {\n if (entry.level >= this.logLevel) {\n const msg = `[${LogLevel[entry.level]}] ${dayjs(entry.date).format('YYYY-MM-DD HH:mm:ss')} ${\n entry.msg\n } ${entry.data.map((item) => JSON.stringify(item, null, 2)).join('\\n')}`;\n switch (entry.level) {\n case LogLevel.Critical:\n case LogLevel.Error:\n // eslint-disable-next-line no-console\n console.error(msg);\n break;\n case LogLevel.Warning:\n // eslint-disable-next-line no-console\n console.warn(msg);\n break;\n case LogLevel.Information:\n // eslint-disable-next-line no-console\n console.info(msg);\n break;\n default:\n // eslint-disable-next-line no-console\n console.log(msg);\n }\n }\n }\n}\n","export interface LogClient {\n log(entry: LogEntry): void;\n}\n\nexport enum LogLevel {\n Trace = 0,\n Debug = 1,\n Information = 2,\n Warning = 3,\n Error = 4,\n Critical = 5,\n}\n\nexport type LogObject = any;\n\nexport interface LogEntry {\n date: Date;\n msg: string;\n level: LogLevel;\n data: LogObject[];\n}\n","import { Injectable } from '@angular/core';\n\nimport { AsyncSubject, lastValueFrom } from 'rxjs';\nimport { LogClient, LogEntry, LogLevel, LogObject } from './log-client.interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LogService {\n private static Instance = new AsyncSubject();\n\n private clients: LogClient[] = [];\n constructor() {\n LogService.Instance.next(this);\n this.info(`Starting application at ${encodeURI(window.location.href)}`);\n }\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n static Using(action: (logger: LogService) => void) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n (async () => {\n // eslint-disable-next-line @typescript-eslint/await-thenable\n const logger = await lastValueFrom(await LogService.Instance);\n action(logger);\n })();\n }\n\n addClient(client: LogClient) {\n this.clients.push(client);\n }\n\n /** Used for the most detailed log messages, typically only valuable to a developer debugging an issue. */\n trace(msg: string, ...data: LogObject[]) {\n this.log(LogLevel.Trace, msg, data);\n }\n\n /** These messages have short-term usefulness during development. */\n debug(msg: string, ...data: LogObject[]) {\n this.log(LogLevel.Debug, msg, data);\n }\n\n /** These messages are used to track the general flow of the application. */\n info(msg: string, ...data: LogObject[]) {\n this.log(LogLevel.Information, msg, data);\n }\n\n /** he Warning level should be used for abnormal or unexpected events in the application flow. These may include errors or other conditions that do not cause the application to stop, but which may need to be investigated in the future. Handled exceptions are a common place to use the Warning log level. */\n warn(msg: string, ...data: LogObject[]) {\n this.log(LogLevel.Warning, msg, data);\n }\n\n /** An error should be logged when the current flow of the application must stop due to some failure, such as an exception that cannot be handled or recovered from. These messages should indicate a failure in the current activity or operation (such as the current HTTP request), not an application-wide failure. */\n error(msg: string, ...data: LogObject[]) {\n this.log(LogLevel.Error, msg, data);\n }\n\n /** A critical log level should be reserved for unrecoverable application or system crashes, or catastrophic failure that requires immediate attention. */\n fatal(msg: string, ...data: LogObject[]) {\n this.log(LogLevel.Critical, msg, data);\n }\n\n private log(level: LogLevel, msg: string, data: LogObject[]) {\n const entry: LogEntry = {\n date: new Date(),\n level,\n msg,\n data: JSON.parse(JSON.stringify(data)),\n }; // do full copy of data to prevent old values there.\n this.clients.forEach((client) => client.log(entry));\n }\n}\n","import { NgModule } from '@angular/core';\n\n@NgModule({\n imports: [],\n declarations: [],\n providers: [],\n exports: [],\n})\nexport class LoggingModule {}\n","/*\n * Public API Surface of com-logging\n */\n\nexport * from './lib/advanced-console-log-client.service';\nexport * from './lib/console-log-client.service';\nexport * from './lib/log.service';\nexport * from './lib/logging.module';\nexport * from './lib/log-client.interface';\n","import { Component, ElementRef, ErrorHandler, OnInit, TemplateRef, ViewChild } from '@angular/core';\nimport { NgForm } from '@angular/forms';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { combineLatest, lastValueFrom } from 'rxjs';\nimport { first, map } from 'rxjs/operators';\n\nimport {\n ApplicationStateService,\n BasketQueryParams,\n BasketService,\n Booking,\n ConfigService,\n Culture,\n CustomerService,\n HotelCodeString,\n HotelService,\n HotelType,\n Loader,\n Locale,\n LocaleService,\n PromoCodeString,\n PromotionService,\n SearchParams,\n TrackingService,\n} from 'src/app/core';\nimport { AppErrorHandler } from 'src/app/core/app-error.handler';\n\nimport { LogService } from '@com/logging';\nimport { Messenger } from 'src/app/modules/messenger';\nimport { Step, StepList } from 'src/app/modules/step-list';\nimport { RoomGuests, UTCDateTimeString } from './helpers';\nimport { DateHelper } from './helpers';\nimport { NavigationHelper } from './helpers/navigation-helper';\nimport { LandingPageModel } from './pages/landing-page/landing-page.component';\nimport { DesignConfiguration } from './shared/design/design-configuration';\n\nexport interface AppQueryParams extends Partial {\n PrimaryLangID?: string;\n reason?: string;\n PromotionCode?: PromoCodeString;\n customerToken?: string;\n}\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n})\nexport class AppComponent implements OnInit {\n private logo = '';\n isSoldOutError = false;\n promotionInvalid = false;\n FooterInfo: HotelType | undefined;\n data$ = combineLatest([\n this.customerService.customer$,\n this.stepList.step$,\n this.localeService.locale$,\n this.basketService.hotelCode$,\n ]).pipe(\n map(([customer, step, locale, hotelCode]) => ({\n logo: step.step === Step.Search && !step.hasError ? this.logo : Promise.resolve(undefined),\n customer,\n canChangePromo:\n step.step === Step.Search ||\n step.step === Step.Package ||\n step.step === Step.AddOn ||\n step.step === Step.Customer,\n canChangeCustomer:\n step.step === Step.Search ||\n step.step === Step.Package ||\n step.step === Step.AddOn ||\n step.step === Step.Customer,\n showBasket:\n step.step === Step.Search ||\n step.step === Step.Package ||\n step.step === Step.AddOn ||\n step.step === Step.Customer,\n locale,\n hotel: (async () => {\n if (hotelCode) {\n return await this.hotelService.GetECommerceDepartmentInformation(hotelCode, locale);\n }\n return undefined;\n })(),\n })),\n );\n title = 'Spectra-E-Commerce-Platform';\n cultures: Culture[] = [];\n culture$ = this.localeService.locale$.pipe(map((locale) => this.cultures.find((culture) => culture.Code === locale)));\n version = this.config.getVersion();\n showLoginPopup = false;\n showPromoPopup = false;\n promocode$ = this.promotionService.promocode$;\n promoCodeStartDate: Date | undefined;\n promoCodeStartMonth: string | undefined;\n promoCodeEndDate: Date | undefined;\n promoCodeEndMonth: string | undefined;\n\n // Link and icon show/hide management\n showLinkbar = true;\n showBasket = true;\n showLoginPromotion = true;\n\n showMobileMenu = false;\n showMobileNavigationFooter = true;\n showMobileContinue = true;\n isPaymentLink = false;\n\n activeProducts: LandingPageModel[] | null | undefined;\n\n @ViewChild('header', { static: false }) header: ElementRef | undefined;\n @ViewChild('messageErrorTempalte', { static: false }) messageErrorTempalte: TemplateRef | undefined;\n @ViewChild('messageConfirmResetTemplate', { static: false })\n messageConfirmResetTemplate: TemplateRef | undefined;\n @ViewChild('messageActiveAccount', { static: false }) messageActiveAccount:\n | TemplateRef\n | undefined;\n @ViewChild('messageSuccess', { static: false }) messageSuccess: TemplateRef | undefined;\n\n constructor(\n private config: ConfigService,\n private router: Router,\n public navigationHelper: NavigationHelper,\n private route: ActivatedRoute,\n private log: LogService,\n private hotelService: HotelService,\n private basketService: BasketService,\n private localeService: LocaleService,\n private promotionService: PromotionService,\n private loader: Loader,\n private customerService: CustomerService,\n private stepList: StepList,\n private messenger: Messenger,\n private errorHandler: ErrorHandler,\n private activatedRoute: ActivatedRoute,\n private designConfig: DesignConfiguration,\n public applicationState: ApplicationStateService,\n protected trackingService: TrackingService, // ensure that this service is initialized with application(to send correct data to google)\n ) {\n this.promotionInvalid = false;\n if (errorHandler instanceof AppErrorHandler) {\n (this.errorHandler as AppErrorHandler).errors.subscribe((err) => {\n if (this.messageErrorTempalte) {\n if (err.message === '{\"t\":\"SoldOut\"}') {\n this.isSoldOutError = true;\n const message = this.messenger.show(this.messageErrorTempalte, {\n text: 'COM_SoldOutError',\n close: async () => {\n this.messenger.close(message);\n this.navigationHelper.goToUrl(applicationState.CustomLogoRedirectURL);\n },\n });\n } else if (err.message === 'SeatingSoldOut') {\n this.isSoldOutError = true;\n const message = this.messenger.show(this.messageErrorTempalte, {\n text: 'COM_SeatingSoldOut',\n close: async () => {\n this.messenger.close(message);\n this.navigationHelper.goToUrl(applicationState.CustomLogoRedirectURL);\n },\n });\n } else if (err.message === 'Promotion code is invalid') {\n this.promotionInvalid = true;\n }\n this.loader.hideAll();\n } else {\n this.log.fatal(`messageErrorTempalte must be defined`);\n }\n });\n }\n\n router.events.subscribe((val) => {\n if (val instanceof NavigationEnd) {\n this.trackingService.pageView(`/booking/` + val.urlAfterRedirects);\n }\n });\n }\n\n async ngOnInit() {\n this.ListenToRouteChange();\n await new Promise((resolve) => setTimeout(() => resolve(), 0)); // wait for router to initialize\n await this.getSearchParameters();\n const queryParams = this.route.snapshot.queryParams as AppQueryParams;\n await this.applyLanguage(queryParams.PrimaryLangID);\n await this.designConfig.applyTheme();\n this.applyPromocode(queryParams.PromotionCode);\n await this.checkForCustomerToken(queryParams.customerToken);\n this.logo = this.applicationState.ApplicationLogo;\n await this.loadNetsScript();\n }\n\n async getSearchParameters() {\n const searchParams = {} as SearchParams;\n this.activatedRoute.queryParams.subscribe(async (params) => {\n searchParams.hotelCode = params['HotelCode'];\n\n const arrival = params['ArrivalDate'];\n if (arrival) {\n searchParams.arrival = DateHelper.FromUtcDate(arrival);\n }\n searchParams.stay = params['LengthOfStay'];\n searchParams.rooms = [params['RoomCounts']] as unknown as RoomGuests[];\n searchParams.BookingFlow = params['BookingFlow'];\n searchParams.RateCode = params['RateCode'];\n\n if (searchParams.hotelCode) {\n this.applicationState.CurrentHotelCode = searchParams.hotelCode as HotelCodeString;\n\n await this.loader.using(\n async () => {\n await this.hotelService.BuildApplicationState();\n },\n 'LOA_Configuration',\n false,\n );\n } else {\n if (!this.applicationState.CurrentHotelCode && !searchParams.hotelCode) {\n await this.loader.using(\n async () => {\n if (!this.isPaymentLink) {\n const hotels = await this.hotelService.GetECommerceDepartmentsInformation();\n\n this.applicationState.CurrentHotelCode = hotels[0].Code as HotelCodeString;\n searchParams.hotelCode = this.applicationState.CurrentHotelCode;\n await this.hotelService.BuildApplicationState();\n }\n\n await this.designConfig.applyTheme();\n },\n 'LOA_Configuration',\n false,\n );\n }\n }\n\n await this.loader.using(\n async () => {\n this.FooterInfo = await this.hotelService.GetECommerceDepartmentInformation(\n this.applicationState.CurrentHotelCode,\n await this.localeService.getLocale(),\n );\n this.applicationState.HotelBasketInfo = this.FooterInfo;\n },\n 'LOA_Configuration',\n false,\n );\n });\n }\n\n async loadNetsScript() {\n const node = document.createElement('script');\n const config = await this.config.getAppSettings();\n node.src = config.NetsCheckoutScript;\n node.type = 'text/javascript';\n node.async = true;\n node.charset = 'utf-8';\n\n document.getElementsByTagName('head')[0].appendChild(node);\n }\n\n ListenToRouteChange() {\n this.router.events.subscribe((val) => {\n const basket = this.basketService.get();\n const ttt = val as NavigationEnd;\n if (ttt instanceof NavigationEnd) {\n this.showMobileNavigationFooter = true;\n if (ttt.url.includes('/search') || ttt.url.includes('/conference-search')) {\n this.showLinkbar = true;\n this.showBasket = false;\n this.showLoginPromotion = true;\n } else if (ttt.url.includes('/landing-page') || ttt.urlAfterRedirects.includes('/landing-page')) {\n this.showLinkbar = false;\n this.showBasket = false;\n this.showLoginPromotion = false;\n this.showMobileNavigationFooter = false;\n } else if (ttt.url.includes('/add-on')) {\n this.showMobileContinue = true;\n } else if (ttt.url.includes('/room') || ttt.url.includes('/ratesRoom')) {\n this.showLinkbar = true;\n this.showBasket = true;\n if (basket) {\n this.showMobileContinue = basket.bookings.length !== 0;\n }\n } else if (ttt.url.includes('/reciept')) {\n this.showBasket = false;\n this.showLinkbar = false;\n } else if (ttt.url.includes('/guests')) {\n this.showLinkbar = true;\n this.showMobileContinue = true;\n } else if (ttt.url.includes('/giftcard')) {\n this.showLinkbar = true;\n this.showBasket = true;\n this.showMobileContinue = true;\n } else if (ttt.url.includes('/seating')) {\n this.showLinkbar = true;\n this.showBasket = true;\n if (basket) {\n this.showMobileContinue = basket.bookings.length !== 0;\n }\n } else if (ttt.url.includes('/payment-link') || ttt.url.includes('/payment')) {\n this.showLinkbar = false;\n\n if (ttt.url.includes('/payment-link')) {\n this.isPaymentLink = true;\n }\n } else {\n this.showLinkbar = true;\n this.showBasket = true;\n this.isPaymentLink = false;\n }\n }\n });\n }\n\n async getCustomerEmailByToken(token: string) {\n this.log.trace(`App getCustomerEmailByToken(${token})`);\n return await this.loader.using(async () => {\n try {\n return await this.customerService.getCustomerByToken(token);\n } catch (err) {\n throw new Error(\n await lastValueFrom(\n this.localeService.translations$.pipe(\n first(),\n map((t) => t.APA_CustomerNotFound),\n ),\n ),\n );\n }\n }, 'LOA_CustomerInfo');\n }\n\n async activateCustomer(token: string, password: string) {\n this.log.debug(`App activateCustomer(${token}, ***)`);\n await this.loader.using(async () => {\n await this.customerService.activate(token, password);\n }, 'LOA_ActivatingCustomer');\n }\n\n async onLocaleSelect(locale: Locale) {\n this.log.debug(`App onLocaleSelect(${locale})`);\n await this.loader.using(async () => {\n try {\n await this.localeService.setLocale(locale);\n } catch (err) {\n this.log.error(`App onLocaleSelect(${locale}) failed. ${(err as Error).message}`);\n throw new Error(`There are no translations for ${locale} language.`);\n }\n }, 'LOA_Translations');\n }\n\n async onPromoSubmit() {\n this.log.debug(`App onPromoSubmit()`);\n this.showPromoPopup = false;\n if (this.promocode$.value && this.applicationState.CurrentHotelCode) {\n const promoInfo = await this.promotionService.getPromotionStatus(\n this.applicationState.CurrentHotelCode as HotelCodeString,\n this.promocode$.value,\n );\n if (promoInfo) {\n this.promoCodeStartDate = DateHelper.FromUtcDate(promoInfo[0].StayFromDate.toString() as UTCDateTimeString);\n this.promoCodeEndDate = DateHelper.FromUtcDate(promoInfo[0].StayToDate.toString() as UTCDateTimeString);\n this.promoCodeStartMonth = DateHelper.getTranslatedMonth(this.promoCodeStartDate.getMonth());\n this.promoCodeEndMonth = DateHelper.getTranslatedMonth(this.promoCodeEndDate.getMonth());\n }\n }\n\n if (this.messageSuccess && this.promocode$.value) {\n const message = this.messenger.show(this.messageSuccess, {\n close: () => {\n this.messenger.close(message);\n },\n });\n }\n }\n\n onShowPromoPopupClick() {\n this.log.trace(`App onShowPromoPopupClick()`);\n this.showPromoPopup = true;\n }\n\n BasketClick() {\n this.hideMobileMenu();\n this.basketService.showOrHideBasket();\n }\n\n onClosePromoPopup() {\n this.log.trace(`App onClosePromoPopup()`);\n this.showPromoPopup = false;\n this.hideMobileMenu();\n }\n\n onShowLoginPopupClick() {\n this.log.trace(`App onShowLoginPopupClick()`);\n this.confirmResetAndRunAction(() => {\n this.showLoginPopup = true;\n });\n }\n\n onShowLoginPopupClose() {\n this.log.trace(`App onShowLoginPopupClose()`);\n this.showLoginPopup = false;\n this.hideMobileMenu();\n }\n\n onLogoutClick() {\n this.log.debug(`App onLogoutClick()`);\n this.confirmResetAndRunAction(() => {\n this.customerService.logout();\n });\n }\n\n async seatingLink() {\n this.hideMobileMenu();\n await this.navigationHelper.continue('/search', '/seating/1', {\n queryParams: {\n HotelCode: this.applicationState.CurrentHotelCode,\n ArrivalDate: DateHelper.toServerDateFormatString(new Date()),\n LengthOfStay: 30,\n },\n });\n }\n\n async giftcardLink() {\n this.hideMobileMenu();\n await this.navigationHelper.continue('/search', '/giftcard', {\n queryParams: {\n HotelCode: this.applicationState.CurrentHotelCode,\n ArrivalDate: DateHelper.toServerDateFormatString(new Date()),\n LengthOfStay: 30,\n },\n });\n }\n\n async tableReservationLink() {\n this.hideMobileMenu();\n await this.navigationHelper.continue('/landing-page', '/guests');\n }\n\n async conferenceBookingLink() {\n this.hideMobileMenu();\n await this.navigationHelper.continue('/landing-page', '/conference-search');\n }\n\n private hideMobileMenu() {\n this.showMobileMenu = false;\n }\n clickLocale() {\n this.hideMobileMenu();\n }\n\n menuClick() {\n // Toggle showMobileMenu value.\n this.showMobileMenu = !this.showMobileMenu;\n }\n\n async logoClicked() {\n if (this.applicationState.CustomLogoRedirectURL !== '') {\n document.location.href = this.applicationState.CustomLogoRedirectURL;\n } else {\n this.basketService.basketBadgeNumberSet = '0';\n await this.navigationHelper.navigateToPage('/landing-page');\n }\n }\n\n async ratesClick() {\n this.hideMobileMenu();\n await this.navigationHelper.continue('/search', '/ratesRoom/1', {\n queryParams: { HotelCode: this.applicationState.CurrentHotelCode },\n });\n }\n\n async roomClick() {\n this.hideMobileMenu();\n await this.navigationHelper.continue('/search', '/room/1', {\n queryParams: { HotelCode: this.applicationState.CurrentHotelCode },\n });\n }\n\n async goBack() {\n await this.navigationHelper.goBack();\n window.scrollTo({ left: 0, top: 0, behavior: 'smooth' });\n }\n\n async goHome() {\n if (this.applicationState.CustomLogoRedirectURL !== '') {\n document.location.href = this.applicationState.CustomLogoRedirectURL;\n } else {\n this.basketService.basketBadgeNumberSet = '0';\n await this.navigationHelper.navigateToPage('/landing-page');\n }\n window.scrollTo({ left: 0, top: 0, behavior: 'smooth' });\n }\n\n private updateGiftCard() {\n const basket = this.basketService.get();\n if (basket) {\n // We allways save giftcards on index 0 in the basket on the bookingarray, just like seatings.\n const giftcards = basket.bookings[0].Giftcards;\n\n if (giftcards) {\n for (const item of giftcards) {\n item.TotalPrice = item.Count * item.Price;\n }\n }\n this.basketService.set(basket);\n }\n }\n\n async next() {\n this.updateGiftCard();\n await this.navigationHelper.continueMobileNavigationbar(true, false);\n }\n\n private confirmResetAndRunAction(action: () => void) {\n const basket = this.basketService.get();\n if (basket && basket.bookings.filter((booking: Booking) => booking.HasPromotionForCustomer).length !== 0) {\n if (!this.messageConfirmResetTemplate) {\n throw new Error(`Template for reset confirmation message must exist`);\n }\n const message = this.messenger.show(this.messageConfirmResetTemplate, {\n confirm: async () => {\n action();\n this.messenger.close(message);\n await this.router.navigate(['/room/1'], {\n queryParams: BasketService.BuildQueryParams(basket.params),\n });\n },\n cancel: () => {\n this.messenger.close(message);\n },\n });\n } else {\n action();\n }\n }\n\n private async applyLanguage(lang: string | undefined) {\n await this.loader.using(\n async () => {\n try {\n this.cultures = await this.localeService.getCultures();\n const locale = await this.localeService.determineLocale(this.cultures, lang);\n await this.localeService.setLocale(locale);\n } catch (err) {\n this.log.fatal(`App applyLanguage() failed. ${(err as Error).message}`);\n await this.localeService.setLocale(Locale.GB);\n throw err;\n }\n },\n undefined,\n false,\n );\n }\n\n private applyPromocode(promocode: PromoCodeString | undefined) {\n if (promocode !== undefined) {\n this.promotionService.promocode$.next(promocode);\n }\n }\n\n private async checkForCustomerToken(customerToken: string | undefined) {\n if (customerToken) {\n if (!this.messageActiveAccount) {\n throw new Error(`messageActiveAccount variable must exists`);\n }\n const email = await this.getCustomerEmailByToken(customerToken);\n const message = this.messenger.show(\n this.messageActiveAccount,\n {\n email,\n activate: async (f: NgForm) => {\n if (f.valid) {\n const password = f.form.get('password');\n if (password) {\n try {\n await this.activateCustomer(customerToken, password.value);\n this.messenger.close(message);\n const queryParams: AppQueryParams = {\n customerToken: undefined,\n };\n await this.router.navigate([], {\n replaceUrl: true,\n relativeTo: this.route,\n queryParamsHandling: 'merge',\n queryParams,\n });\n } catch (err) {\n message.data.error = (err as Error).message;\n }\n } else {\n message.data.error = `password field must exist`;\n }\n } else {\n Object.keys(f.form.controls).forEach((key) => {\n const control = f.form.get(key);\n if (control) {\n control.markAsTouched();\n }\n });\n }\n },\n cancel: async () => {\n this.messenger.close(message);\n const queryParams: AppQueryParams = { customerToken: undefined };\n await this.router.navigate([], {\n replaceUrl: true,\n relativeTo: this.route,\n queryParamsHandling: 'merge',\n queryParams,\n });\n },\n },\n () => {\n message.data.cancel();\n },\n );\n }\n }\n}\n\ninterface ErrorMessage {\n text: string;\n close: () => void;\n}\n\ninterface ConfirmResetMessage {\n confirm: () => void;\n cancel: () => void;\n}\n\ninterface ActivateAccountMessage {\n email: string;\n error?: string;\n activate: (f: NgForm) => void;\n cancel: () => void;\n}\n\ninterface GuestMessage {\n close: () => void;\n}\n","\n\n\n\n
\n
\n \n
\n \n
\n \n
\n \n \n\n \n \n \n \n \n \n \n\n\n\n
\n
\n

\n {{ 'COM_Error' | t | async }}\n

\n
\n
\n

\n {{ message.text | t | async }}\n

\n
\n
\n \n {{ 'COM_SearchNew' | t | async }}\n \n
\n
\n
\n\n\n
\n
\n

{{ 'COM_Info' | t | async }}

\n

{{ 'APA_ResetBasket' | t | async }}

\n
\n
\n \n \n
\n
\n
\n
\n
\n\n\n
\n
\n
\n

{{ 'APA_ActivateHead' | t | async }}

\n
\n
\n
\n

\n {{ 'APA_ActivateDesc' | t | async }}\n {{ message.email }}\n

\n \n \n
\n {{ 'APA_PasswordHasUpper' | t | async }}\n
\n
\n {{ 'APA_PasswordHasLower' | t | async }}\n
\n
\n {{ 'APA_PasswordHasNumber' | t | async }}\n
\n
\n {{ 'APA_PasswordLength8' | t | async }}\n
\n
\n \n \n
\n {{ 'APA_ConfirmPasswordEqualTo' | t | async }}\n
\n \n

\n {{ message.error }}\n

\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n\n\n
\n
\n
\n \n

\n {{ 'APA_PromoMessageStart' | t | async }}\n '{{ promocode$.value }}'. {{ 'APA_ValidTime' | t | async }}:\n {{ promoCodeStartDate.getDate() }}.\n {{ promoCodeStartMonth | t | async }}\n {{ promoCodeStartDate.getFullYear() }} - {{ promoCodeEndDate.getDate() }}.\n {{ promoCodeEndMonth | t | async }} {{ promoCodeEndDate.getFullYear() }}.
\n {{ 'APA_PromoMessageEnd' | t | async }}\n

\n
\n
\n \n {{ 'COM_OK' | t | async }}\n \n
\n
\n
\n\n","import { HttpClientModule } from '@angular/common/http';\nimport { ErrorHandler, NgModule } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { RouterModule } from '@angular/router';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { DatePipe } from '@angular/common';\n\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MatMomentDateModule } from '@angular/material-moment-adapter';\n\nimport { AppErrorHandler } from 'src/app/core/app-error.handler';\nimport { CoreModule } from 'src/app/core/core.module';\nimport { SharedModule } from 'src/app/shared/shared.module';\n\nimport { LoaderModule } from 'src/app/modules/loader';\nimport { MessengerModule } from 'src/app/modules/messenger';\nimport { StepListModule } from 'src/app/modules/step-list';\n\nimport { AppComponent } from './app.component';\nimport { AddOnCardModalComponent } from './pages/add-on/add-on-card-modal.component';\nimport { AddOnCardComponent } from './pages/add-on/add-on-card.component';\nimport { AddOnComponent } from './pages/add-on/add-on.component';\nimport { CustomerComponent } from './pages/customer/customer.component';\nimport { PaymentFailedComponent } from './pages/payment-failed/payment-failed.component';\nimport { PaymentLinkComponent } from './pages/payment-link/payment-link.component';\nimport { AcceptPaymentComponent } from './pages/payment/AcceptPayment.component';\nimport { FlexWinPaymentComponent } from './pages/payment/flex-win-payment.component';\nimport { RatesRoomComponent } from './pages/ratesRoom/ratesRoom.component';\nimport { RecieptComponent } from './pages/reciept/reciept.component';\nimport { RoomComponent } from './pages/room/room.component';\nimport { SearchFormComponent } from './pages/search/search-form.component';\nimport { SearchComponent } from './pages/search/search.component';\nimport { SeatingComponent } from './pages/seating/seating.component';\nimport { SeatingStandaloneComponent } from './pages/seating-standalone/seating-standalone.component';\nimport { SeatingStandaloneCardComponent } from './pages/seating-standalone/seating-standalone-card.component';\nimport { SeatingStandalonePageComponent } from './pages/seating-standalone/seating/seating-standalone-page.component';\n\nimport { GiftcardFormComponent } from './components/giftcard-form/giftcard-form.component';\nimport { LoginFormComponent } from './components/login-form/login-form.component';\nimport { PromoFormComponent } from './components/promo-form/promo-form.component';\nimport { ApplicationStateService } from './core';\nimport { NavigationHelper } from './helpers/navigation-helper';\nimport { ConferenceDetailsComponent } from './pages/conference/conference-details/conference-details.component';\nimport { ConferenceRoomsComponent } from './pages/conference/conference-rooms/conference-rooms.component';\nimport { ConferenceSearchComponent } from './pages/conference/conference-search/conference-search.component';\nimport { GiftcardDetailsComponent } from './pages/giftcard/details/giftcarddetails.component';\nimport { GiftcardComponent } from './pages/giftcard/products/giftcard.component';\nimport { LandingPageComponent } from './pages/landing-page/landing-page.component';\nimport { CalendarGuidanceComponent } from './pages/search/calendar-guidance/calendar-guidance.component';\nimport { GuestsComponent } from './pages/table-reservation/guests/guests.component';\nimport { CalendarTileComponent } from './pages/table-reservation/products/calendar-tile.component';\nimport { ProductsComponent } from './pages/table-reservation/products/products.component';\nimport { BasketComponent } from './shared/components/basket/basket.component';\nimport { DesignConfiguration } from './shared/design/design-configuration';\nimport { MatDatepickerIntl } from '../i18n/material/DatePickeri18n';\nimport { SeatingDateCalendarComponent } from './pages/seating-standalone/seating-date-calendar.component';\n\n@NgModule({\n declarations: [\n AppComponent,\n SearchComponent,\n SearchFormComponent,\n RoomComponent,\n SeatingComponent,\n SeatingStandaloneComponent,\n SeatingStandaloneCardComponent,\n SeatingDateCalendarComponent,\n SeatingStandalonePageComponent,\n AddOnComponent,\n AddOnCardComponent,\n CustomerComponent,\n FlexWinPaymentComponent,\n PaymentFailedComponent,\n RecieptComponent,\n GiftcardFormComponent,\n LoginFormComponent,\n PromoFormComponent,\n PaymentLinkComponent,\n AcceptPaymentComponent,\n RatesRoomComponent,\n BasketComponent,\n LandingPageComponent,\n GiftcardComponent,\n GiftcardDetailsComponent,\n GuestsComponent,\n ProductsComponent,\n CalendarTileComponent,\n ConferenceSearchComponent,\n ConferenceRoomsComponent,\n ConferenceDetailsComponent,\n CalendarGuidanceComponent,\n AddOnCardModalComponent,\n ],\n imports: [\n BrowserModule,\n CoreModule,\n LoaderModule,\n StepListModule,\n MessengerModule,\n SharedModule,\n HttpClientModule,\n BrowserAnimationsModule,\n MatDatepickerModule,\n MatMomentDateModule,\n RouterModule.forRoot(\n [\n { path: 'search', component: SearchComponent },\n { path: 'landing-page', component: LandingPageComponent },\n { path: 'giftcard', component: GiftcardComponent },\n { path: 'products', component: ProductsComponent },\n { path: 'guests', component: GuestsComponent },\n { path: 'details', component: GiftcardDetailsComponent },\n { path: 'room/:index', component: RoomComponent },\n { path: 'ratesRoom/:index', component: RatesRoomComponent },\n { path: 'seating-standalone', component: SeatingStandaloneComponent },\n { path: 'seating-standalone/:characteristics', component: SeatingStandalonePageComponent },\n { path: 'seating/:index', component: SeatingComponent },\n { path: 'seating/:month/:seatingPlanId', component: SeatingComponent },\n { path: 'add-on', component: AddOnComponent },\n { path: 'add-on/:index', component: AddOnComponent },\n { path: 'customer', component: CustomerComponent },\n { path: 'payment', component: FlexWinPaymentComponent },\n { path: 'payment-failed', component: PaymentFailedComponent },\n { path: 'reciept', component: RecieptComponent },\n {\n path: 'payment-link/:reservationId/:language',\n component: PaymentLinkComponent,\n },\n {\n path: 'payment-link/:reservationId',\n component: PaymentLinkComponent,\n },\n { path: 'AcceptPayment/:type', component: AcceptPaymentComponent },\n {\n path: 'acceptpayment/:type/:orderid',\n component: AcceptPaymentComponent,\n },\n { path: 'conference-search', component: ConferenceSearchComponent },\n { path: 'conference-rooms', component: ConferenceRoomsComponent },\n { path: 'conference-details', component: ConferenceDetailsComponent },\n { path: 'calendar-guidance', component: CalendarGuidanceComponent },\n { path: '**', redirectTo: 'landing-page' },\n ],\n { relativeLinkResolution: 'legacy' },\n ),\n ],\n providers: [\n { provide: ErrorHandler, useClass: AppErrorHandler },\n ApplicationStateService,\n DesignConfiguration,\n NavigationHelper,\n DatePipe,\n { provide: MatDatepickerModule, useClass: MatDatepickerIntl },\n { provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true } },\n ],\n bootstrap: [AppComponent],\n})\nexport class AppModule {}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ApplicationStateService, BookingService } from '../../core';\n\n@Component({\n selector: 'giftcard-form',\n templateUrl: './giftcard-form.component.html',\n})\nexport class GiftcardFormComponent {\n giftcardCode = '';\n giftcardLength = 8;\n giftcardClicked = false;\n giftcardNotFound = false;\n\n // It's an input so we can conditionally use it to render giftcard information aswell\n @Input() giftcardInformation: GiftcardInformationModel | undefined;\n\n // Output to tell parent component new giftcard information\n @Output() giftcardInformationEvent = new EventEmitter();\n\n // If giftcard is already in basket\n @Input() hasGiftcard = false;\n\n @Input() currency = '';\n\n // @ts-ignore - applicationstate is used in the template\n constructor(private bookingService: BookingService, public applicationState: ApplicationStateService) {}\n\n async toggleGiftcardBox() {\n this.giftcardNotFound = false;\n this.giftcardClicked = !this.giftcardClicked;\n this.giftcardCode = '';\n }\n\n async applyGiftcard() {\n const res = await this.bookingService.getGiftcardInformation(this.giftcardCode);\n if (res && res.RemainingAmount !== 0 && res.IsActive) {\n this.giftcardInformation = {\n Amount: res.RemainingAmount,\n Name: res.Name,\n Valid: res.IsActive,\n Number: this.giftcardCode,\n };\n\n this.giftcardInformationEvent.emit(this.giftcardInformation);\n } else {\n this.giftcardNotFound = true;\n this.giftcardCode = '';\n }\n }\n}\n\nexport interface GiftcardInformationModel {\n Amount: number;\n Name: string;\n Valid: boolean;\n Number: string;\n}\n","\n

{{ 'CUP_PayWithGiftcardHeader' | t | async }}

\n
\n
\n

\n {{ 'CUP_PayWithGiftcardDescription' | t | async }}\n

\n \n \n {{ 'CUP_PayWithGiftcardRedeem' | t | async }}\n \n

\n {{ 'CUP_PayWithGiftcardError' | t | async }}\n

\n
\n\n\n\n\n\n

\n \n {{ 'SFO_BookGiftcard' | t | async }}\n

\n
\n
\n
\n
\n
{{ 'COM_Type' | t | async }}
\n
{{ giftcardInformation.Name }}
\n
\n
\n
\n
Status
\n

\n {{ 'CUP_PayWithGiftcardStatus' | t | async }}\n

\n
\n
\n
\n
{{ 'CUP_PayWithGiftcardDiscount' | t | async }}
\n
\n
\n
\n {{ giftcardInformation.Amount | price | async }}\n
\n
{{ giftcardInformation.Amount }} {{ currency }}
\n
\n
\n
\n
\n
\n
\n
\n","import { Component, EventEmitter, OnInit, Output, TemplateRef, ViewChild } from '@angular/core';\nimport { NgForm } from '@angular/forms';\nimport { LogService } from '@com/logging';\nimport { ApplicationStateService, CustomerService, Loader, LocaleService } from 'src/app/core';\nimport { Messenger } from 'src/app/modules/messenger';\n\n@Component({\n selector: 'app-login-form',\n templateUrl: './login-form.component.html',\n})\nexport class LoginFormComponent implements OnInit {\n form = {\n email: '',\n password: '',\n };\n recovery = false;\n hasError = false;\n @Output() formSubmit = new EventEmitter();\n\n @ViewChild('messageSendTemplate', { static: false }) messageSendTemplate: TemplateRef | undefined;\n\n constructor(\n private customerService: CustomerService,\n private loader: Loader,\n private log: LogService,\n private messenger: Messenger,\n private applicationState: ApplicationStateService,\n private locale: LocaleService,\n ) {}\n\n async ngOnInit() {}\n\n onRecoverClick() {\n this.hasError = false;\n this.recovery = true;\n }\n\n onBackToLoginClick() {\n this.hasError = false;\n this.recovery = false;\n }\n\n async onLoginFormSubmit(f: NgForm) {\n this.hasError = false;\n if (f.valid) {\n await this.loader.using(async () => {\n try {\n await this.customerService.login(this.form.email.trim(), this.form.password);\n this.formSubmit.emit();\n } catch (err) {\n this.hasError = true;\n this.log.info(`LoginForm login failed with error: ${(err as Error).message}`);\n }\n }, 'LOA_LoggingIn');\n } else {\n Object.keys(f.form.controls).forEach((key) => {\n const control = f.form.get(key);\n if (control) {\n control.markAsTouched();\n }\n });\n }\n }\n\n async onRecoveryFormSubmit(f: NgForm) {\n this.hasError = false;\n if (f.valid) {\n await this.loader.using(async () => {\n try {\n const lang = await this.locale.getLocale();\n\n await this.customerService.resetCustomerByEmail(\n this.form.email,\n this.applicationState.CurrentHotelCode,\n lang,\n );\n this.recovery = false;\n this.showMessageSendMessage();\n this.formSubmit.emit();\n } catch (err) {\n this.hasError = true;\n this.log.info(`LoginForm recovery failed with error: ${(err as Error).message}`);\n }\n }, 'LOA_SendingInformation');\n } else {\n Object.keys(f.form.controls).forEach((key) => {\n const control = f.form.get(key);\n if (control) {\n control.markAsTouched();\n }\n });\n }\n }\n\n private showMessageSendMessage() {\n if (!this.messageSendTemplate) {\n throw new Error('Template for message send message must exist');\n }\n const message = this.messenger.show(\n this.messageSendTemplate,\n {\n close: () => {\n this.messenger.close(message);\n },\n },\n () => {\n message.data.close();\n },\n );\n }\n}\n\ninterface MessageSend {\n close: () => void;\n}\n","
\n \n
\n
\n
\n
\n

\n {{ 'LFO_ForgotPassword' | t | async }}\n

\n \n \n
\n {{ 'LFO_EmailRequried' | t | async }}\n
\n
\n {{ 'LFO_EmailInvalid' | t | async }}\n
\n
\n

{{ 'LFO_RecoveryError' | t | async }}

\n \n
\n
\n \n
\n
\n
\n
\n
\n\n\n
\n
\n

{{ 'COM_Info' | t | async }}

\n
\n
\n

{{ 'LFO_MessageSend' | t | async }}

\n
\n
\n \n
\n
\n
\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\nimport { LogService } from '@com/logging';\nimport {\n ApplicationStateService,\n BasketService,\n HotelCodeString,\n Loader,\n PromoCodeString,\n PromotionService,\n} from 'src/app/core';\n\n@Component({\n selector: 'app-promo-form',\n templateUrl: './promo-form.component.html',\n})\nexport class PromoFormComponent implements OnInit {\n @Input() hotelCode: HotelCodeString | undefined;\n promo = this.promotionService.getPromocode() || '';\n error = '';\n @Output() formSubmit = new EventEmitter();\n @Output() closeForm = new EventEmitter();\n\n constructor(\n private promotionService: PromotionService,\n private loader: Loader,\n private log: LogService,\n private applicationState: ApplicationStateService,\n private basketService: BasketService,\n ) {}\n\n async ngOnInit() {\n if (this.promo !== '') {\n await this.promotionService.getPromotionStatus(\n this.applicationState.CurrentHotelCode,\n this.promo as PromoCodeString,\n );\n }\n }\n\n onPromoChange(promo: string) {\n this.promo = promo.toUpperCase();\n }\n\n onCloseClick() {\n this.closeForm.emit();\n }\n\n async onSubmit(e: Event) {\n e.preventDefault();\n e.stopPropagation();\n this.error = '';\n if (this.promo) {\n const promo = this.promo as PromoCodeString;\n const hotelCode = this.hotelCode;\n await this.loader.using(async () => {\n try {\n if (!hotelCode) {\n throw new Error('Hotel must be selected before entering promocode');\n }\n const res = await this.promotionService.getPromotionStatus(hotelCode, promo);\n if (res == null) {\n throw new TypeError('According to Spectra the promotioncode is invalid');\n }\n\n this.promotionService.promocode$.next(promo);\n this.formSubmit.emit();\n } catch (err) {\n this.error = (err as Error).message;\n this.log.info(`PromoForm promo failed with error: ${this.error}`);\n }\n }, 'LOA_ApplyingPromo');\n } else {\n this.promotionService.promocode$.next(undefined);\n this.formSubmit.emit();\n\n const basketContent = this.basketService.get();\n if (basketContent) {\n for (const item of basketContent.bookings) {\n item.Price = item.OriginalPrice;\n }\n }\n }\n }\n}\n","
\n \n
\n","import { ErrorHandler, Injectable } from '@angular/core';\nimport { LogService } from '@com/logging';\nimport { Subject } from 'rxjs';\n\n@Injectable()\nexport class AppErrorHandler implements ErrorHandler {\n private lastError: Error | undefined;\n errors = new Subject();\n\n constructor(private log: LogService) {\n this.errors.subscribe((err) => {\n if (!err.message.includes('SoldOut')) {\n this.log.error(`Global error happend: ${err.message}.`);\n }\n });\n }\n\n handleError(err: UncaughtPromiseError) {\n let error: Error = err;\n if (err.rejection && err.rejection instanceof Error) {\n error = err.rejection;\n }\n console.error(error);\n if (!this.lastError || error.name !== this.lastError.name || error.message !== this.lastError.message) {\n this.lastError = error;\n this.errors.next(error);\n setTimeout(() => (this.lastError = undefined), 0); // ignore all similar errors executed in one EventFrame\n }\n }\n}\n\ninterface UncaughtPromiseError extends Error {\n promise: Promise;\n rejection: Error;\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule, Optional, SkipSelf } from '@angular/core';\n\nimport { ConsoleLogClientService, LoggingModule, LogService } from '@com/logging';\nimport { CountryModule } from 'src/app/modules/country';\nimport { ConfigModule } from './modules/config/config.module';\nimport { CustomerModule } from './modules/customer/customer.module';\nimport { HotelModule } from './modules/hotel/hotel.module';\nimport { LocaleModule } from './modules/locale/locale.module';\nimport { PaymentModule } from './modules/payment/payment.module';\nimport { PromotionModule } from './modules/promotion/promotion.module';\nimport { TrackingModule } from './modules/tracking/tracking.module';\nimport { ApplicationStateService, BasketService, BookingService, Loader, ServerLogClientService } from './services';\n\n@NgModule({\n imports: [\n CommonModule,\n ConfigModule,\n CountryModule,\n HotelModule,\n LoggingModule,\n LocaleModule,\n PaymentModule,\n PromotionModule,\n CustomerModule,\n TrackingModule,\n ],\n providers: [\n ApplicationStateService,\n BasketService,\n BookingService,\n ConsoleLogClientService,\n ServerLogClientService,\n Loader,\n ],\n declarations: [],\n})\nexport class CoreModule {\n constructor(\n @Optional() @SkipSelf() parentModule: CoreModule,\n logService: LogService,\n consoleLogClientService: ConsoleLogClientService,\n serverLogClientService: ServerLogClientService,\n ) {\n if (parentModule) {\n throw new Error('CoreModule is already loaded. Import it in the AppModule only');\n }\n logService.addClient(consoleLogClientService);\n logService.addClient(serverLogClientService);\n }\n}\n","export * from './services';\nexport * from './modules';\n","import { NgModule, Optional, SkipSelf } from '@angular/core';\nimport { ConfigService } from './config.service';\nimport { DataConfigService } from './data-config.service';\n// import { MockDataConfigService } from \"./mock-data-config\";\n\n@NgModule({\n imports: [],\n declarations: [],\n providers: [{ provide: DataConfigService, useClass: DataConfigService }, ConfigService],\n exports: [],\n})\nexport class ConfigModule {\n constructor(@Optional() @SkipSelf() parentModule: ConfigModule) {\n if (parentModule) {\n throw new Error('ConfigModule is already loaded. Import it in the CoreModule only');\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LogService } from '@com/logging';\nimport { RoomGuests } from 'src/app/helpers';\nimport { environment } from 'src/environments/environment';\nimport { DataConfigService, IConfigService } from './data-config.service';\n\n@Injectable()\nexport class ConfigService implements IConfigService {\n private version = environment.version;\n private defaultFavicon = this.getCurrentFavicon() || 'favicon.ico';\n private styleElement: HTMLStyleElement | null = null;\n\n constructor(private log: LogService, private dataConfigService: DataConfigService) {}\n\n async getConfiguration() {\n const res = await this.dataConfigService.getConfiguration();\n return res;\n }\n\n async getAppSettings() {\n const res = (await this.getConfiguration()).AppSettings;\n if (!environment.production && this.urlMustBeModified(res.WidgetHandlerUrl)) {\n this.log.debug(\n `Not production environment; prefixing URLs with ${environment.testBaseUrl}: WidgetHandler, BookingService, CultureHandler, CustomerService`,\n );\n res.WidgetHandlerUrl = environment.testBaseUrl + res.WidgetHandlerUrl;\n res.BookingServiceUrl = environment.testBaseUrl + res.BookingServiceUrl;\n res.CultureHandlerUrl = environment.testBaseUrl + res.CultureHandlerUrl;\n res.CustomerServiceUrl = environment.testBaseUrl + res.CustomerServiceUrl;\n }\n\n return res;\n }\n\n urlMustBeModified(url: { length: number }): boolean {\n return url.length < 25;\n }\n\n async getCustomerParams() {\n return (await this.getConfiguration()).CustomerParams;\n }\n\n async getLoggingParams() {\n const res = (await this.getConfiguration()).Logging;\n if (!environment.production && this.urlMustBeModified(res.LoggingServiceUrl)) {\n res.LoggingServiceUrl = environment.testBaseUrl + res.LoggingServiceUrl;\n }\n\n return res;\n }\n\n async getPaymentMethods() {\n return (await this.getConfiguration()).PaymentMethods;\n }\n\n async getInitialSearchParams() {\n return (await this.getConfiguration()).InitialSearchParams;\n }\n\n async getSearchParams() {\n return (await this.getConfiguration()).SearchParams;\n }\n\n async getGaParams() {\n return (await this.getConfiguration()).GaParams;\n }\n\n async getDefaultRoomGuests() {\n return new RoomGuests([2, 0, 0, 0, 0, 0]);\n }\n\n applyStyles(styles: string) {\n if (!this.styleElement) {\n this.styleElement = document.createElement('style');\n }\n this.styleElement.appendChild(document.createTextNode(styles));\n if (!document.head) {\n throw new Error('Failed to set custom styles because head in not available');\n }\n document.head.appendChild(this.styleElement);\n }\n\n applyFavicon(path: string | undefined) {\n const link = this.getFaviconElement();\n if (!link) {\n throw new Error('Favicon is not declared in HTML');\n }\n link.setAttribute('href', path || this.defaultFavicon);\n }\n\n getVersion() {\n return this.version;\n }\n\n getVersionAsNumber() {\n return `0.${this.version.replace(/\\./g, '')}`;\n }\n\n private getFaviconElement() {\n return document.getElementById('favicon');\n }\n\n private getCurrentFavicon() {\n const link = this.getFaviconElement();\n return link ? link.getAttribute('href') : undefined;\n }\n\n static AddPixel(src: string) {\n const elem = document.createElement('img');\n elem.setAttribute('src', src);\n elem.setAttribute('height', '1');\n elem.setAttribute('width', '1');\n elem.setAttribute('visibility', 'hidden');\n document.body.appendChild(elem);\n }\n}\n\nexport type CultureCode = 'CC-cc';\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { InMemoryCache } from 'src/app/helpers';\nimport { environment } from 'src/environments/environment';\nimport { lastValueFrom } from 'rxjs';\nimport { Configuration } from './configuration';\n\nexport interface IConfigService {\n getConfiguration(): Promise;\n}\n\n@Injectable()\nexport class DataConfigService implements IConfigService {\n private configCache = new InMemoryCache();\n private configUrl = environment.configUrl;\n\n constructor(private http: HttpClient) {}\n\n async getConfiguration() {\n return await this.configCache.getOrCreateAsync('config', async () => {\n try {\n return await lastValueFrom(this.http.get(this.configUrl));\n } catch (err) {\n throw new Error('Failed to load configurations');\n }\n });\n }\n}\n","export * from './config.service';\nexport * from './configuration';\nexport * from './models';\n","export * from './types';\n","import { NgModule, Optional, SkipSelf } from '@angular/core';\nimport { CustomerService } from './customer.service';\n\n@NgModule({\n imports: [],\n declarations: [],\n providers: [CustomerService],\n exports: [],\n})\nexport class CustomerModule {\n constructor(@Optional() @SkipSelf() parentModule: CustomerModule) {\n if (parentModule) {\n throw new Error('CustomerModule is already loaded. Import it in the CoreModule only');\n }\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { LogService } from '@com/logging';\nimport { BehaviorSubject, lastValueFrom } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { ConfigService } from 'src/app/core/modules/config';\nimport { StorageClient } from 'src/app/helpers';\nimport { CountryService } from 'src/app/modules/country';\nimport { Customer, CustomerInfo } from './customer';\n\n@Injectable()\nexport class CustomerService {\n private static defaultCustomer: Customer = {\n Id: null,\n PaymentRequired: true,\n Info: {\n FirstName: '',\n LastName: '',\n ZipCode: '',\n City: '',\n Country: CountryService.Default.Code,\n Phone: '',\n Address1: '',\n Address2: '',\n Email: '',\n },\n Company: null,\n };\n\n private customer = new StorageClient(localStorage, 'Customer', CustomerService.defaultCustomer);\n customer$ = new BehaviorSubject(this.customer.get());\n customerId$ = this.customer$.pipe(map((customer) => (customer.Id ? customer.Id : undefined || undefined)));\n companyId$ = this.customer$.pipe(\n map((customer) => (customer.Company ? customer.Company.Id : undefined || undefined)),\n );\n\n constructor(private http: HttpClient, private config: ConfigService, private log: LogService) {\n this.customer$.subscribe((customer) => {\n this.customer.set(customer);\n });\n }\n\n updateInfo(Info: CustomerInfo) {\n const customer = this.customer$.value;\n if (customer.Id) {\n throw new Error(\"Can't update already known customer\");\n }\n this.customer$.next({\n ...this.customer$.value,\n Info,\n });\n }\n\n getCustomer() {\n return this.customer$.value;\n }\n\n async login(email: string, password: string) {\n this.log.debug(`CustomerService login(${email})`);\n const config = await this.config.getAppSettings();\n const response = await lastValueFrom(\n this.http.get(`${config.ECommerceDataProvider}/api/auth/login/${email}/${password}`),\n );\n if (response) {\n const customer = this.mapCustomer(response);\n this.customer$.next(customer);\n return customer;\n } else {\n throw new Error('No Access');\n }\n }\n\n logout() {\n this.log.debug('CustomerService logout()');\n this.customer$.next({\n ...this.customer$.value,\n Id: null,\n PaymentRequired: false,\n Company: null,\n });\n }\n\n async getCustomerByToken(token: string) {\n const config = await this.config.getAppSettings();\n const response = await lastValueFrom(\n this.http.get(`${config.ECommerceDataProvider}/api/auth/getEmailFromToken/${token}`),\n );\n\n if (response) {\n return response;\n } else {\n throw new Error(response || 'Token is not valid');\n }\n }\n\n async activate(token: string, password: string) {\n const config = await this.config.getAppSettings();\n const response = await lastValueFrom(\n this.http.post(\n `${config.ECommerceDataProvider}/api/auth/activateAccount`,\n // `https://localhost:44343/api/auth/activateAccount`\n {\n token,\n password,\n },\n ),\n );\n if (response) {\n const customer = this.mapCustomer(response);\n this.customer$.next(customer);\n return customer;\n } else {\n throw new Error(response);\n }\n }\n\n async resetCustomerByEmail(email: string, hotelCode: string, langCode: string) {\n const config = await this.config.getAppSettings();\n\n const response = await lastValueFrom(\n this.http.post(\n `${config.ECommerceDataProvider}/forgotPassword`,\n // `https://localhost:44343/forgotPassword`\n {\n email,\n hotelCode,\n langCode,\n },\n ),\n );\n if (response) {\n throw new Error(!response || 'Failed to reset customer password by email');\n }\n }\n\n private mapCustomer(r: CustomerInfoContract) {\n const customer: Customer = {\n Id: r.CustomerId,\n PaymentRequired: r.Mustpayonline,\n Info: {\n FirstName: r.Name.split(' ')[0],\n LastName: r.Name.split(' ')[1],\n Email: r.EMail,\n ZipCode: r.ZipCode,\n Address1: r.Address1,\n Address2: r.Address2,\n City: r.City,\n Country: 'DK',\n Phone: r.Phone,\n },\n Company: {\n Id: r.CompanyId,\n Name: r.CompanyName,\n ZipCode: r.ZipCode,\n Address1: r.Address1,\n Address2: r.Address2,\n City: r.City,\n CountryCode: 'DK',\n CountryName: r.Country,\n Phone: r.Phone,\n },\n };\n return customer;\n }\n}\n\ninterface CustomerInfoContract {\n EMail: string;\n Name: string;\n CustomerId: number;\n Activated: boolean;\n CompanyId: number;\n CompanyName: string;\n Address1: string;\n Address2: string;\n ZipCode: string;\n Phone: string;\n Country: string;\n City: string;\n Mustpayonline: boolean;\n}\n\nexport interface ActivateCustomerResponse {\n ActivateCustomerResult?: CustomerInfoContract;\n ErrorCode?: string;\n Messsage?: string;\n}\n","export * from './customer.service';\nexport * from './customer';\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Meta, Title } from '@angular/platform-browser';\nimport { DateHelper, Guid, InMemoryCache } from 'src/app/helpers';\nimport { Locale } from 'src/i18n';\nimport { lastValueFrom } from 'rxjs';\nimport { LocaleService } from '..';\nimport { ApplicationStateService } from '../../services';\nimport { ConfigService, HotelCodeString } from '../config';\nimport { environment } from '../../../../environments/environment';\nimport { Rate, Room } from './models';\nimport { HotelType, RatePlanDataType, RatePlanType, RoomType, SeatingData } from './models/data.model';\n\n@Injectable()\nexport class DataHotelService {\n private departmentCache = new InMemoryCache(15000); // 15 seconds cache strategy\n\n constructor(\n private http: HttpClient,\n private configService: ConfigService,\n private applicationState: ApplicationStateService,\n private localeService: LocaleService,\n private meta: Meta,\n private title: Title,\n ) {}\n\n // New endpoints\n async initializeImportantDateToApplicationState() {\n const currentHotel = await this.GetECommerceDepartmentInformation(\n this.applicationState.CurrentHotelCode,\n Locale.GB,\n );\n if (currentHotel && currentHotel.Settings.ReceiptUrl) {\n this.applicationState.CustomReceiptRedirectURL = currentHotel.Settings.ReceiptUrl;\n } else {\n this.applicationState.CustomReceiptRedirectURL = '';\n }\n\n if (currentHotel && currentHotel.Settings.LogoUrl) {\n this.applicationState.CustomLogoRedirectURL = currentHotel.Settings.LogoUrl;\n } else {\n this.applicationState.CustomLogoRedirectURL = '';\n }\n\n if (currentHotel) {\n this.applicationState.AnimateBackground = currentHotel.Settings.AnimatedBackground === false ? 'false' : 'true';\n this.applicationState.MandatoryEmail = currentHotel.Settings.MandatoryEmail;\n this.applicationState.MandatoryPhone = currentHotel.Settings.MandatoryPhone;\n this.applicationState.MaxAQC = currentHotel.Settings.MaxAQC.toString();\n this.applicationState.BackGroundimage = currentHotel.Image;\n this.applicationState.ApplicationLogo = currentHotel.Logo;\n this.applicationState.UseGiftcard = currentHotel.Settings.UseGiftcard;\n this.applicationState.UseGiftcardFrom = currentHotel.Settings.UseGiftcardFrom;\n this.applicationState.UseGiftcardTo = currentHotel.Settings.UseGiftcardTo;\n this.applicationState.UseGiftcardMessage = currentHotel.Settings.UseGiftcardMessage;\n this.applicationState.UseTableReservation = currentHotel.Settings.UseTableReservation;\n this.applicationState.InclueTableReservationBookingFlow =\n currentHotel.Settings.IncludeTableReservationInBookingFlow;\n this.applicationState.InclueSeatingBookingFlow = currentHotel.Settings.IncludeSeatingsInBookingFlow;\n this.applicationState.UseSpectraOnlineBooking = currentHotel.Settings.UseSpectraOnlineBooking;\n this.applicationState.PayWithGiftcard = currentHotel.Settings.PayWithGiftcard;\n this.applicationState.UseSeatings = currentHotel.Settings.UseSeating;\n this.applicationState.UseNavbarLinks = currentHotel.Settings.ShowNavbarLinks;\n this.applicationState.DesignPackage = currentHotel.Settings.DesignPackage;\n this.applicationState.UseConferenceModule = currentHotel.Settings.UseConferenceModule;\n this.applicationState.ApplicationColor = currentHotel.Settings.CustomColor;\n this.applicationState.ApplicationColorTextIcon = currentHotel.Settings.CustomColorTextIcon;\n this.applicationState.UsePromotion = currentHotel.Settings.UsePromotion;\n this.applicationState.HeaderInjectText = currentHotel.Settings.HeaderInjectText;\n this.applicationState.UseExtraServices = currentHotel.UseExtraServices;\n this.applicationState.UseSpectraOnlineBookingMenuPoint = currentHotel.Settings.UseSpectraOnlineBookingMenuPoint;\n this.applicationState.UseSeatingMenuPoint = currentHotel.Settings.UseSeatingMenuPoint;\n this.applicationState.UseTableReservationMenuPoint = currentHotel.Settings.UseTableReservationMenuPoint;\n this.applicationState.UseGiftcardMenuPoint = currentHotel.Settings.UseGiftcardMenuPoint;\n this.applicationState.UseConferenceBookingMenuPoint = currentHotel.Settings.UseConferenceBookingMenuPoint;\n this.configService.applyFavicon(currentHotel.Favicon);\n this.buildLabels(currentHotel);\n this.buildApplicationFont(currentHotel);\n this.injectHeadTagFromCustomerPortal();\n this.title.setTitle(currentHotel.Settings.CustomPageTitle || `${currentHotel.Name} E-Commerce Platform`);\n }\n\n const response = await this.getHotelConfiguration();\n\n if (response) {\n this.applicationState.UseNetsEasy = response.Platform === 'Nets Easy' ? true : false;\n this.applicationState.UseNetAxept = response.Platform === 'NetAxept' ? true : false;\n this.applicationState.AcceptedCards = response.AcceptedCards;\n this.applicationState.HotelCurrency = response.Currency;\n this.applicationState.NetsPaymentEnabled =\n response.DibsState === Dibs.none ? false : response.DibsState !== Dibs.disabled;\n }\n }\n\n injectHeadTagFromCustomerPortal() {\n const toInject = this.applicationState.HeaderInjectText;\n\n if (toInject && toInject !== '' && toInject !== 'null') {\n const split = toInject.split('\"', 4);\n\n if (1 in split && 3 in split) {\n this.meta.addTag({ name: split[1], content: split[3] });\n }\n }\n }\n\n async GetECommerceDepartmentInformation(hotelCode: string, lang: string) {\n return await this.departmentCache.getOrCreateAsync(hotelCode + '-' + lang, async () => {\n const config = await this.configService.getAppSettings();\n const endpoint = this.getBaseUrl(config.ECommerceDataProvider);\n const data = await lastValueFrom(\n this.http.get(\n `${endpoint}/api/ECommerceData/GetECommerceDepartmentInformation/${hotelCode}/${lang}`,\n ),\n );\n\n return data;\n });\n }\n\n async GetECommerceDepartmentsInformation() {\n const config = await this.configService.getAppSettings();\n const endpoint = this.getBaseUrl(config.ECommerceDataProvider);\n const lang = await this.localeService.getLocale();\n const data = await lastValueFrom(\n this.http.get(`${endpoint}/api/ECommerceData/GetECommerceDepartments/${lang}`),\n );\n\n return data;\n }\n\n async GetECommerceRoomInfo(hotelCode: string, roomCode: string, lang: string) {\n const config = await this.configService.getAppSettings();\n const endpoint = this.getBaseUrl(config.ECommerceDataProvider);\n const encodedRoomCode = encodeURIComponent(roomCode);\n const data = await lastValueFrom(\n this.http.get(\n `${endpoint}/api/ECommerceData/GetECommerceRoomInfo?hotelCode=${hotelCode}&roomCode=${encodedRoomCode}&lang=${lang}`,\n ),\n );\n\n return data;\n }\n\n async GetECommerceRateInfo(hotelCode: string, rateCode: string, lang: string) {\n const config = await this.configService.getAppSettings();\n const endpoint = this.getBaseUrl(config.ECommerceDataProvider);\n const encodedRateCode = encodeURIComponent(rateCode);\n const data = await lastValueFrom(\n this.http.get(\n `${endpoint}/api/ECommerceData/GetECommerceRateInfo?hotelCode=${hotelCode}&rateCode=${encodedRateCode}&lang=${lang}`,\n ),\n );\n\n return data;\n }\n\n async IsSeatingsAvailable(hotelCode: string) {\n const config = await this.configService.getAppSettings();\n const endpoint = this.getBaseUrl(config.ECommerceDataProvider);\n const lang = await this.localeService.getLocale();\n const data = await lastValueFrom(\n this.http.get(`${endpoint}/api/eCommerceData/seatingsAvailableNextYear/${hotelCode}/${lang}`),\n );\n\n return data;\n }\n\n async IsTablesAvailable(hotelCode: string) {\n const config = await this.configService.getAppSettings();\n const endpoint = this.getBaseUrl(config.ECommerceDataProvider);\n const lang = await this.localeService.getLocale();\n const data = await lastValueFrom(\n this.http.get(`${endpoint}/api/eCommerceData/tablesAvailableNextYear/${hotelCode}/${lang}`),\n );\n\n return data;\n }\n\n async GetStayAvailability(\n hotelCode: string,\n fromDate: Date,\n toDate: Date,\n rateCode: string | undefined,\n companyId: number | undefined,\n ) {\n let definedRateCode = '';\n\n if (rateCode) {\n definedRateCode = rateCode;\n }\n const config = await this.configService.getAppSettings();\n const endpoint = this.getBaseUrl(config.ECommerceDataProvider);\n const serverFromDate = DateHelper.toServerDateFormatString(fromDate);\n const serverToDate = DateHelper.toServerDateFormatString(toDate);\n const data = await lastValueFrom(\n this.http.get(\n `${endpoint}/api/eCommerceData/getStayAvailability/${hotelCode}/${serverFromDate}/${serverToDate}/${definedRateCode}/${companyId}`,\n ),\n );\n return data;\n }\n\n async GetECommerceSeatings(hotelCode: string, fromDate: Date, toDate: Date, lang: string, distinctByDate = false) {\n const config = await this.configService.getAppSettings();\n const endpoint = this.getBaseUrl(config.ECommerceDataProvider);\n const serverFromDate = DateHelper.toServerDateFormatString(fromDate);\n const serverToDate = DateHelper.toServerDateFormatString(toDate);\n const data = await lastValueFrom(\n this.http.get(\n `${endpoint}/api/eCommerceData/GetECommerceSeatings/${hotelCode}/${serverFromDate}/${serverToDate}/${lang}?distinctByDate=${distinctByDate}`,\n ),\n );\n return data;\n }\n\n async GetECommerceSeating(hotelCode: string, fromDate: Date, toDate: Date, lang: string, characteristics: string) {\n const config = await this.configService.getAppSettings();\n const endpoint = this.getBaseUrl(config.ECommerceDataProvider);\n const serverFromDate = DateHelper.toServerDateFormatString(fromDate);\n const serverToDate = DateHelper.toServerDateFormatString(toDate);\n const data = await lastValueFrom(\n this.http.get(\n `${endpoint}/api/eCommerceData/GetECommerceSeating/${hotelCode}/${serverFromDate}/${serverToDate}/${lang}/${characteristics}`,\n ),\n );\n return data;\n }\n\n async GetECommerceSeatingPortalInfo(\n hotelCode: string,\n fromDate: Date,\n toDate: Date,\n seatingCode: string,\n bookingflow: boolean,\n rateCode: string,\n ) {\n const config = await this.configService.getAppSettings();\n const endpoint = this.getBaseUrl(config.ECommerceDataProvider);\n const serverFromDate = DateHelper.toServerDateFormatString(fromDate);\n const serverToDate = DateHelper.toServerDateFormatString(toDate);\n const lang = await this.localeService.getLocale();\n const data = await lastValueFrom(\n this.http.get(\n `${endpoint}/api/eCommerceData/GetECommercePortalSeatingInfo/${hotelCode}/${serverFromDate}/${serverToDate}/${lang}/${bookingflow}?seatingCode=${seatingCode}&rateCode=${rateCode}`,\n ),\n );\n\n return data;\n }\n\n async GetECommerceTablePortalInfo(\n hotelCode: string,\n fromDate: Date,\n toDate: Date,\n seatingCode: string,\n lang: string,\n bookingflow: boolean,\n rateCode: string,\n ) {\n const config = await this.configService.getAppSettings();\n const endpoint = this.getBaseUrl(config.ECommerceDataProvider);\n const serverFromDate = DateHelper.toServerDateFormatString(fromDate);\n const serverToDate = DateHelper.toServerDateFormatString(toDate);\n const data = await lastValueFrom(\n this.http.get(\n `${endpoint}/api/eCommerceData/GetECommercePortalTableInfo/${hotelCode}/${serverFromDate}/${serverToDate}/${lang}/${bookingflow}?seatingCode=${seatingCode}&rateCode=${rateCode}`,\n ),\n );\n\n return data;\n }\n\n async GetECommerceConferenceRoomsInfo(hotelCode: string, lang: string) {\n const config = await this.configService.getAppSettings();\n const endpoint = this.getBaseUrl(config.ECommerceDataProvider);\n const data = await lastValueFrom(\n this.http.get(`${endpoint}/api/ECommerceData/GetECommerceConferenceRooms/${hotelCode}/${lang}`),\n );\n\n return data;\n }\n\n async GetECommerceConferenceRoomInfo(hotelCode: string, lang: string, roomCode: string) {\n const config = await this.configService.getAppSettings();\n const endpoint = this.getBaseUrl(config.ECommerceDataProvider);\n const data = await lastValueFrom(\n this.http.get(\n `${endpoint}/api/ECommerceData/GetECommerceConferenceRoom/${hotelCode}/${lang}/${roomCode}`,\n ),\n );\n\n return data;\n }\n\n async GetECommerceExtraServiceInfo(\n hotelCode: string,\n itemNumber: string,\n lang: string,\n ratePlan?: string,\n roomType?: string,\n ) {\n const config = await this.configService.getAppSettings();\n const endpoint = this.getBaseUrl(config.ECommerceDataProvider);\n let url = `${endpoint}/api/ECommerceData/GetECommerceExtraServices/${hotelCode}/${itemNumber}/${lang}`;\n if (ratePlan || roomType) {\n url += '?';\n if (ratePlan) {\n url += `ratePlan=${ratePlan}`;\n }\n if (roomType) {\n url += `&roomType=${roomType}`;\n }\n }\n const data = await lastValueFrom(this.http.get(url));\n return data;\n }\n\n async GetECommerceExtraServices({\n hotelCode,\n ratePlan,\n fromDate,\n toDate,\n lang,\n adultCount,\n agecategory1count,\n agecategory2count,\n agecategory3count,\n agecategory4count,\n roomCode,\n seatingCode,\n }: {\n // Destructuring with type annotation:\n hotelCode: string;\n ratePlan: string | null;\n fromDate: string;\n toDate: string;\n lang: string;\n adultCount: number;\n agecategory1count: number;\n agecategory2count: number;\n agecategory3count: number;\n agecategory4count: number;\n roomCode: string;\n seatingCode: string | undefined;\n }) {\n const config = await this.configService.getAppSettings();\n const endpoint = this.getBaseUrl(config.ECommerceDataProvider);\n const baseData = `${hotelCode}/${fromDate}/${toDate}/${lang}`;\n const aqcCounts = `${adultCount}/${agecategory1count}/${agecategory2count}/${agecategory3count}/${agecategory4count}`;\n const productCodes = `?roomCode=${roomCode}&ratePlan=${ratePlan}&seatingCode=${seatingCode}`;\n\n const data = await lastValueFrom(\n this.http.get(\n `${endpoint}/api/ECommerceData/GetECommerceExtraServices/${baseData}/${aqcCounts}${productCodes}`,\n ),\n );\n\n return data;\n }\n\n async GetECommerceSeatingsAvailableMonths(hotelCode: string, fromDate: Date, toDate: Date, bookingflow: boolean) {\n const config = await this.configService.getAppSettings();\n const endpoint = this.getBaseUrl(config.ECommerceDataProvider);\n const serverFromDate = DateHelper.toServerDateFormatString(fromDate);\n const serverToDate = DateHelper.toServerDateFormatString(toDate);\n const lang = await this.localeService.getLocale();\n const data = await lastValueFrom(\n this.http.get(\n `${endpoint}/api/ECommerceData/SeatingsAvailableMonths/${hotelCode}/${serverFromDate}/${serverToDate}/${bookingflow}/${lang}`,\n ),\n );\n\n return data;\n }\n\n async getTableAvailability(\n hotelCode: HotelCodeString,\n arrival: Date,\n departure: Date,\n guestCount: number,\n bookingFlow: boolean,\n rateCode: string,\n ) {\n const config = await this.configService.getAppSettings();\n const endpoint = this.getBaseUrl(config.ECommerceDataProvider);\n const serverFromDate = DateHelper.toServerDateFormatString(arrival);\n const serverToDate = DateHelper.toServerDateFormatString(departure);\n const lang = await this.localeService.getLocale();\n const data = await lastValueFrom(\n this.http.get(\n `${endpoint}/api/ECommerceData/GetECommerceTableAvailability/${hotelCode}/${serverFromDate}/${serverToDate}/${guestCount}/${lang}/${bookingFlow}/${rateCode}`,\n ),\n );\n\n return data;\n }\n\n async payAmountWithGiftcard(model: GiftcardReservationPayment) {\n const config = await this.configService.getAppSettings();\n const endpoint = this.getBaseUrl(config.ECommerceDataProvider);\n const data = await lastValueFrom(\n this.http.post(`${endpoint}/PayAmountWithGiftcard`, model),\n );\n\n return data;\n }\n\n async GetSpectraRoomInfo(\n hotelCode: string,\n fromdate: Date,\n todate: Date,\n rateplan: string,\n guests: GuestCombination[],\n language: string,\n companyId: number | undefined,\n ) {\n const config = await this.configService.getAppSettings();\n const endpoint = this.getBaseUrl(config.ECommerceDataProvider);\n const data = await lastValueFrom(\n this.http.post(`${endpoint}/api/eCommerce/GetSpectraRooms/`, {\n HotelCode: hotelCode,\n FromDate: DateHelper.toServerDateFormatString(fromdate),\n ToDate: DateHelper.toServerDateFormatString(todate),\n RateCode: rateplan || 'undefined',\n RoomCode: 'undefined',\n Guests: guests,\n LanguageCode: language,\n CompanyId: companyId,\n } as RoomsAndRatesModel),\n );\n\n return data;\n }\n\n async GetSpectraRateInfo(\n hotelCode: string,\n fromdate: Date,\n todate: Date,\n roomCode: string,\n guests: GuestCombination[],\n language: string,\n companyId: number | undefined,\n ) {\n const config = await this.configService.getAppSettings();\n const endpoint = this.getBaseUrl(config.ECommerceDataProvider);\n const data = await lastValueFrom(\n this.http.post(`${endpoint}/api/eCommerce/GetSpectraRates/`, {\n HotelCode: hotelCode,\n FromDate: DateHelper.toServerDateFormatString(fromdate),\n ToDate: DateHelper.toServerDateFormatString(todate),\n RateCode: 'undefined',\n RoomCode: roomCode || 'undefined',\n Guests: guests,\n LanguageCode: language,\n CompanyId: companyId,\n } as RoomsAndRatesModel),\n );\n return data;\n }\n\n async GetSpectraCancellationprotection(hotelCode: string) {\n const config = await this.configService.getAppSettings();\n const endpoint = this.getBaseUrl(config.ECommerceDataProvider);\n const data = await lastValueFrom(\n this.http.get(`${endpoint}/api/eCommerce/GetCancellationprotection/${hotelCode}`),\n );\n\n return data;\n }\n\n async GetCompanyAgreementDiscount(hotelCode: string, companyId: number) {\n const config = await this.configService.getAppSettings();\n const endpoint = this.getBaseUrl(config.ECommerceDataProvider);\n const data = await lastValueFrom(\n this.http.get(\n `${endpoint}/api/eCommerce/GetCompanyAgreements/${hotelCode}/${companyId}`,\n ),\n );\n\n return data;\n }\n\n private buildApplicationFont(hotel: HotelType) {\n const fontMap: { [key: number]: string } = {\n 1: 'Arial',\n 2: 'Serif',\n 3: 'Helvetica',\n 4: 'Courier New',\n 5: 'Verdana',\n 6: 'Courier',\n 7: 'Candara',\n 8: 'Calibri',\n 9: 'Cambria',\n 10: 'Perpetua',\n 11: 'Brush Script MT',\n 12: 'Lucida Bright',\n 13: 'Segoe UI',\n 14: 'Tahoma',\n 15: 'Century Gothic',\n };\n\n const selectedFont = fontMap[hotel.Settings.UIFonts];\n if (selectedFont) {\n this.applicationState.ApplicationFont = selectedFont;\n }\n }\n\n private buildLabels(hotel: HotelType) {\n // Build dynamic hotellabel\n const hotelLabelMap: { [key: number]: string } = {\n 1: 'SFO_ChooseHolidayResort',\n 2: 'SFO_ChooseHotel',\n 3: 'SFO_ChooseDepartment',\n 4: 'SFO_ChooseCenter',\n };\n\n const selectedHotelLabel = hotelLabelMap[hotel.Settings.HotelLabel];\n if (selectedHotelLabel) {\n this.applicationState.HotelLabel = selectedHotelLabel;\n }\n\n // Build dynamic Eventlabel\n const eventLabelMap: { [key: number]: string } = {\n 1: 'SFO_BookEvent',\n 2: 'SFO_BookTakeAway',\n 3: 'SFO_BookTableReservation',\n 4: 'SFO_BookArrangement',\n 5: 'SFO_BookConcert',\n 6: 'SFO_BookTableArangement',\n 7: 'SFO_BookTableEvent',\n 8: 'SFO_BordTakeAway',\n 9: 'SFO_BookTicket',\n 10: 'SFO_BookLecture',\n 11: 'SFO_BookTable',\n 12: 'SFO_BookSpa',\n 13: 'SFO_BookExperience',\n };\n\n const selectedEventLabel = eventLabelMap[hotel.Settings.EventLabel];\n if (selectedEventLabel) {\n this.applicationState.EventLabel = selectedEventLabel;\n }\n\n // Build Dynamic Roomlabels\n const roomLabelMap: {\n [key: number]: {\n RoomLabel: string;\n RoomsLabel: string;\n GuestInRoomLabel: string;\n ChooseYourRoom: string;\n MoreRoomLabel: string;\n ChooseRoomLabel: string;\n RoomTypeLabel: string;\n };\n } = {\n 1: {\n RoomLabel: 'COM_Cabin',\n RoomsLabel: 'BIN_CabinCount',\n GuestInRoomLabel: 'SFO_GuestsCabin',\n ChooseYourRoom: 'RPA_ChooseYourCabin',\n MoreRoomLabel: 'SFO_AddCabin',\n ChooseRoomLabel: 'RPA_ChooseCabin',\n RoomTypeLabel: 'BIN_Cabintype',\n },\n 2: {\n RoomLabel: 'COM_House',\n RoomsLabel: 'BIN_HouseCount',\n GuestInRoomLabel: 'SFO_GuestsHouse',\n ChooseYourRoom: 'RPA_ChooseYourHouse',\n MoreRoomLabel: 'SFO_AddHouse',\n ChooseRoomLabel: 'RPA_ChooseHouse',\n RoomTypeLabel: 'BIN_Housetype',\n },\n 3: {\n RoomLabel: 'COM_Room',\n RoomsLabel: 'COM_Rooms',\n GuestInRoomLabel: 'SFO_Guests',\n ChooseYourRoom: 'RPA_ChooseYourRoom',\n MoreRoomLabel: 'SFO_AddRoom',\n ChooseRoomLabel: 'RPA_ChooseRoom',\n RoomTypeLabel: 'BIN_Roomtype',\n },\n 4: {\n RoomLabel: 'COM_Unit',\n RoomsLabel: 'BIN_UnitCount',\n GuestInRoomLabel: 'SFO_GuestsUnit',\n ChooseYourRoom: 'RPA_ChooseYourUnit',\n MoreRoomLabel: 'SFO_AddUnit',\n ChooseRoomLabel: 'RPA_ChooseUnit',\n RoomTypeLabel: 'BIN_Unittype',\n },\n };\n\n const selectedRoomLabel = roomLabelMap[hotel.Settings.RoomLabel];\n if (selectedRoomLabel) {\n this.applicationState.RoomLabel = selectedRoomLabel.RoomLabel;\n this.applicationState.RoomsLabel = selectedRoomLabel.RoomsLabel;\n this.applicationState.GuestInRoomLabel = selectedRoomLabel.GuestInRoomLabel;\n this.applicationState.ChooseYourRoom = selectedRoomLabel.ChooseYourRoom;\n this.applicationState.MoreRoomLabel = selectedRoomLabel.MoreRoomLabel;\n this.applicationState.ChooseRoomLabel = selectedRoomLabel.ChooseRoomLabel;\n this.applicationState.RoomTypeLabel = selectedRoomLabel.RoomTypeLabel;\n }\n }\n\n private async getHotelConfiguration() {\n const [appSettings] = await Promise.all([this.configService.getAppSettings()]);\n\n const res = await lastValueFrom(\n this.http.get(\n `${this.getBaseUrl(appSettings.ECommerceDataProvider)}/Configuration?hotelCode=${\n this.applicationState.CurrentHotelCode\n }`,\n ),\n );\n\n return res;\n }\n\n private getBaseUrl(dataProvider: string): string {\n return environment.production ? dataProvider : 'https://localhost:44343';\n }\n}\n\nexport interface CompanyAgreementDiscountResponseModel {\n RatePlanCode: string;\n DiscountPercentage: string;\n FromDate: Date;\n ToDate: Date;\n}\n\nexport interface CustomerPortalSeatingInfo {\n ID: string;\n HotelCode: string;\n Image: string;\n Long: string;\n SeatItems: SeatItems[];\n Name: string;\n Short: string;\n SortIndex: number;\n}\n\nexport interface SeatItems {\n Name: string;\n Price: number;\n VareNr: string;\n}\n\nexport interface StayAvailabilityResponse {\n Date: Date;\n Reason: string;\n Description: string;\n NumberOfDays: number;\n}\n\nexport interface RoomTypeInfo {\n RoomType: string;\n MaxPersons: number;\n Vacant: number;\n Price: number;\n}\n\nexport interface ConferenceRoom {\n RoomTypeName: string;\n ImageOfRoom1: string;\n ImageOfRoom2: string;\n ImageOfRoom3: string;\n ShortDescription: string;\n LongDescription: string;\n Maxpers: number;\n ECommerceTableSetups: ECommerceTableSetup[];\n}\n\nexport interface Dates {\n Date: string;\n selectedCount: number;\n maxCount: number;\n}\n\nexport interface BookingExtraServiceModel {\n Name: string;\n ServiceId: string;\n Id: number;\n Amount: number;\n Count: number;\n Dates: Dates[];\n}\n\nexport interface ExtraServiceModel extends BookingExtraServiceModel {\n Long: string;\n Image: string;\n SortIndex: number;\n}\n\nexport interface ECommerceTableSetup {\n RoomNumber: string;\n Description: string;\n Persons: number;\n Image: string;\n}\n\nexport interface RateCode {\n RateCode: string;\n RoomTypes: RoomTypeInfo[];\n}\n\ninterface RateData extends RatePlanType {\n Promotion: RatePlanDataType | undefined;\n MinPers: number;\n MaxPers: number;\n InvBlockCode: string | null;\n Price: number | null;\n OriginalPrice: number | null;\n Quantity: number;\n minStay: number;\n maxStay: number;\n}\n\nexport interface HotelRoomRateData {\n roomType: RoomType;\n Rates: RateData[];\n}\n\nexport interface GiftcardReservationPayment {\n GiftCardNumber: string;\n ReservationNumber: number;\n Amount: number;\n resGuid: Guid;\n currency: string;\n}\n\nexport interface GiftcardPaymentResponse {\n TransactionId: number;\n GiftcardNumber: string;\n GiftcardAccountNumber: string;\n TicketNumber: string;\n}\n\ninterface HotelConfigurationModel {\n AcceptedCards: string;\n Platform: string;\n Currency: string;\n DibsState: Dibs;\n}\n\nexport enum Dibs {\n none,\n disabled,\n test,\n production,\n}\n\nexport interface SpectraApiRoomResponseModel {\n AvailableQuantity: number;\n Rateplans: RoomRates[];\n HotelCode: string;\n RoomType: string;\n MaxPersons: number;\n}\n\nexport interface RoomRates {\n RatePlan: string;\n Description: string;\n Price: number;\n Name: string;\n}\n\nexport interface SpectraApiRateResponseModel {\n RatePlan: string;\n Description: string;\n Name: string;\n RoomTypes: RatesRoom[];\n}\n\nexport interface RatesRoom {\n AvailableQuantity: number;\n RoomType: string;\n MaxPersons: number;\n Price: number;\n}\n\nexport interface RoomsAndRatesModel {\n HotelCode: string;\n FromDate: string;\n ToDate: string;\n RateCode: string;\n RoomCode: string;\n Guests: GuestCombination[];\n LanguageCode: string;\n CompanyId: number;\n}\n\nexport interface GuestCombination {\n AdultCount: number;\n InfantCount: number;\n ChildCount: number;\n TeenagerCount: number;\n SeniorCount: number;\n}\n\nexport interface CancellationProtection {\n Enabled: boolean;\n MinimumAmount: number;\n Percentage: number;\n}\n","import { NgModule, Optional, SkipSelf } from '@angular/core';\nimport { DataHotelService } from './data-hotel.service';\nimport { HotelService } from './hotel.service';\n// import { MockDataHotelService } from \"./mock-data-hotel\";\n\n@NgModule({\n imports: [],\n declarations: [],\n providers: [{ provide: DataHotelService, useClass: DataHotelService }, HotelService],\n exports: [],\n})\nexport class HotelModule {\n constructor(@Optional() @SkipSelf() parentModule: HotelModule) {\n if (parentModule) {\n throw new Error('HotelModule is already loaded. Import it in the CoreModule only');\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HotelCodeString } from '../config';\nimport { Locale } from '../locale';\nimport { DataHotelService, GiftcardReservationPayment, GuestCombination } from './data-hotel.service';\n\n@Injectable()\nexport class HotelService {\n currentLang: Locale | undefined;\n\n constructor(private dataHotelService: DataHotelService) {}\n\n // New endpoints\n async GetECommerceExtraServiceInfo(\n hotelCode: string,\n itemNumber: string,\n lang: string,\n ratePlan?: string,\n roomType?: string,\n ) {\n return await this.dataHotelService.GetECommerceExtraServiceInfo(hotelCode, itemNumber, lang, ratePlan, roomType);\n }\n\n async GetECommerceDepartmentInformation(hotelCode: string, lang: string) {\n return await this.dataHotelService.GetECommerceDepartmentInformation(hotelCode, lang);\n }\n\n async GetECommerceDepartmentsInformation() {\n return await this.dataHotelService.GetECommerceDepartmentsInformation();\n }\n\n async GetECommerceRoomInfo(hotelCode: string, roomCode: string, lang: string) {\n return await this.dataHotelService.GetECommerceRoomInfo(hotelCode, roomCode, lang);\n }\n\n async GetECommerceRateInfo(hotelCode: string, rateCode: string, lang: string) {\n return await this.dataHotelService.GetECommerceRateInfo(hotelCode, rateCode, lang);\n }\n\n async IsSeatingsAvailable(hotelCode: string) {\n return await this.dataHotelService.IsSeatingsAvailable(hotelCode);\n }\n\n async IsTablesAvailable(hotelCode: string) {\n return await this.dataHotelService.IsTablesAvailable(hotelCode);\n }\n\n async GetECommerceSeatingsMonths(hotelCode: string, fromDate: Date, toDate: Date, bookingflow: boolean) {\n return await this.dataHotelService.GetECommerceSeatingsAvailableMonths(hotelCode, fromDate, toDate, bookingflow);\n }\n\n async GetRoomAvailability(\n hotelCode: string,\n fromDate: Date,\n toDate: Date,\n rateCode: string | undefined,\n companyId: number | undefined,\n ) {\n return await this.dataHotelService.GetStayAvailability(hotelCode, fromDate, toDate, rateCode, companyId);\n }\n\n async GetECommerceSeatings(hotelCode: string, fromDate: Date, toDate: Date, lang: string, distinctByDate = false) {\n return await this.dataHotelService.GetECommerceSeatings(hotelCode, fromDate, toDate, lang, distinctByDate);\n }\n\n async GetEcommerceSeating(hotelCode: string, fromDate: Date, toDate: Date, lang: string, characteristics: string) {\n return await this.dataHotelService.GetECommerceSeating(hotelCode, fromDate, toDate, lang, characteristics);\n }\n\n async GetECommerceSeatingPortalInfo(\n hotelCode: string,\n fromDate: Date,\n todate: Date,\n seatingCode: string,\n bookingflow: boolean,\n rateCode: string,\n ) {\n return await this.dataHotelService.GetECommerceSeatingPortalInfo(\n hotelCode,\n fromDate,\n todate,\n seatingCode,\n bookingflow,\n rateCode,\n );\n }\n\n async GetECommerceTablePortalInfo(\n hotelCode: string,\n fromDate: Date,\n toDate: Date,\n seatingCode: string,\n lang: string,\n bookingflow: boolean,\n rateCode: string,\n ) {\n return await this.dataHotelService.GetECommerceTablePortalInfo(\n hotelCode,\n fromDate,\n toDate,\n seatingCode,\n lang,\n bookingflow,\n rateCode,\n );\n }\n\n async GetECommerceConferenceRoomsInfo(hotelCode: string, lang: string) {\n return await this.dataHotelService.GetECommerceConferenceRoomsInfo(hotelCode, lang);\n }\n\n async GetECommerceConferenceRoomInfo(hotelCode: string, lang: string, roomCode: string) {\n return await this.dataHotelService.GetECommerceConferenceRoomInfo(hotelCode, lang, roomCode);\n }\n\n async GetSpectraRoomInfo(\n hotelCode: string,\n fromdate: Date,\n todate: Date,\n rateplan: string,\n guests: GuestCombination[],\n language: string,\n companyId: number | undefined,\n ) {\n return await this.dataHotelService.GetSpectraRoomInfo(\n hotelCode,\n fromdate,\n todate,\n rateplan,\n guests,\n language,\n companyId,\n );\n }\n\n async GetSpectraRateInfo(\n hotelCode: string,\n fromdate: Date,\n todate: Date,\n roomCode: string,\n guests: GuestCombination[],\n language: string,\n companyId: number | undefined,\n ) {\n return await this.dataHotelService.GetSpectraRateInfo(\n hotelCode,\n fromdate,\n todate,\n roomCode,\n guests,\n language,\n companyId,\n );\n }\n\n async getTableAvailability(\n hotelCode: HotelCodeString,\n arrival: Date,\n departure: Date,\n guestCount: number,\n bookingFlow: boolean,\n rateCode: string,\n ) {\n return await this.dataHotelService.getTableAvailability(\n hotelCode,\n arrival,\n departure,\n guestCount,\n bookingFlow,\n rateCode,\n );\n }\n\n async payAmountWithGiftcard(model: GiftcardReservationPayment) {\n return await this.dataHotelService.payAmountWithGiftcard(model);\n }\n\n async BuildApplicationState() {\n await this.dataHotelService.initializeImportantDateToApplicationState();\n }\n\n async GetCancellationProtection(hotelCode: string) {\n return await this.dataHotelService.GetSpectraCancellationprotection(hotelCode);\n }\n\n async GetCompanyAgreementDiscount(hotelCode: string, companyId: number) {\n return await this.dataHotelService.GetCompanyAgreementDiscount(hotelCode, companyId);\n }\n}\n","export * from './hotel.service';\nexport * from './models';\n","import { AspDateString, AspDateWithTimeZoneString, DKDateString, GuestType, Guid, TimeString } from 'src/app/helpers';\nimport { HotelCodeString, PromoCodeString, RateCodeString, RoomCodeString } from '../../config';\n\nexport interface BookedRoom {\n room: RoomCodeString;\n rate: RateCodeString;\n}\n\ninterface RoomGroup {\n ID: number;\n Name: string;\n}\n\nexport interface SeatItem {\n ID: number;\n Name: string;\n Price: number;\n VareNr: string;\n}\n\nexport interface Seat {\n ID: Guid;\n Name: string;\n Long: string;\n Short: string;\n Image: string;\n SortIndex: number;\n SeatItems: SeatItem[];\n}\n\nexport enum WidgetPriceType {\n AvgPrice = 1,\n TotalPrice = 2,\n}\n\nexport enum DibsPaymentStatusEnum {\n OnlineProduction = 1,\n OnlineTest = 2,\n Disabled = 3,\n OfflineTest = 4,\n}\n\nexport interface HotelAqc {\n CategoryNumber: number;\n CategoryType: number;\n Name: string;\n Label: string;\n Description: string;\n AQC: GuestType;\n From: number;\n To: number;\n SortIndex: number;\n}\n\ninterface HotelSettings {\n MerchantID: string | null;\n PriceType: WidgetPriceType;\n DibsCcFee: boolean;\n DibsPaymentStatus: DibsPaymentStatusEnum;\n VacantRoomSearchMaxMonth: number;\n BookMaxNights: number;\n BookMaxRooms: number;\n UseCalendar: boolean;\n UsePromotion: boolean;\n UseLogin: boolean;\n UseSeating: boolean;\n JustActivityBooking: boolean;\n IsGoogleHotelAdsEnabled: boolean;\n GoogleHotelAdsId: string;\n DefaultCountryField: boolean;\n CustomColor: string;\n CustomColorTextIcon: string;\n CustomPageTitle: string;\n ReceiptUrl: string;\n AnimatedBackground: boolean;\n MaxAQC: number;\n HotelLabel: number;\n RoomLabel: number;\n EventLabel: number;\n UIFonts: number;\n MandatoryEmail: boolean;\n MandatoryPhone: boolean;\n UseTableReservation: boolean;\n UseSpectraOnlineBooking: boolean;\n UseGiftcard: boolean;\n PayWithGiftcard: boolean;\n UseGiftcardFrom: boolean;\n UseGiftcardTo: boolean;\n UseGiftcardMessage: boolean;\n IncludeTableReservationInBookingFlow: boolean;\n LogoUrl: string;\n ShowNavbarLinks: boolean;\n IncludeSeatingsInBookingFlow: boolean;\n DesignPackage: string;\n UseConferenceModule: boolean;\n HeaderInjectText: string;\n SortIndexTableReservation: number;\n SortIndexSpectraOnlineBooking: number;\n SortIndexGiftCard: number;\n SortIndexSeating: number;\n UseSpectraOnlineBookingMenuPoint: boolean;\n UseSeatingMenuPoint: boolean;\n UseTableReservationMenuPoint: boolean;\n UseGiftcardMenuPoint: boolean;\n UseConferenceBookingMenuPoint: boolean;\n}\n\nexport interface RoomType {\n Code: RoomCodeString;\n RatePlans: RateCodeString[];\n Name: string;\n Short: string;\n Long: string;\n Image: string;\n Image1: string;\n Image2: string;\n RoomTypeGroupID: number | null;\n MaxPers: number;\n}\n\nexport interface ExtraGroup {\n Name: string;\n ExtraServices: ServiceType[];\n}\n\nexport interface ServiceType {\n Id: string;\n ServiceId: string;\n Name: string;\n ShortDescription: string;\n LongDescription: string;\n Image: string;\n}\n\nexport interface RatePlanType {\n Code: RateCodeString;\n ShortDescription: string;\n LongDescription: string | null;\n Url: string;\n Image: string;\n Image1: string;\n Image2: string;\n Status: string;\n}\n\nexport interface HotelType {\n Code: HotelCodeString;\n Description: string;\n Image: string;\n Logo: string;\n Favicon: string;\n Name: string;\n VATNumber: string;\n PostalCode: string;\n Country: string;\n Address: string;\n Email: string;\n Phone: string;\n City: string;\n Terms: string;\n RoomTypeGroups: RoomGroup[];\n Rooms: RoomType[];\n IsHotelDepartment: boolean;\n UseCancelPolicy: boolean;\n UseExtraServices: boolean;\n CancelPolicyPercentage: number;\n CancellationPolicyAmount: number;\n ExtraServices: ExtraGroup[];\n CancellationPolicyServicesIncluded: boolean;\n Seats: Seat[];\n Settings: HotelSettings;\n Rates: RatePlanType[];\n Aqcs: HotelAqc[];\n}\n\nexport interface HotelRegion {\n Hotels: HotelType[];\n Code: string;\n}\n\nexport interface GetWidgetDataResponse {\n GetWidgetDataResult: {\n HotelRegions: HotelRegion[];\n };\n}\n\nexport interface PromotionStatus {\n Status: string;\n Start: AspDateWithTimeZoneString | null;\n End: AspDateWithTimeZoneString | null;\n}\n\ninterface PromotionType {\n Code: PromoCodeString;\n Discount: number;\n Image: string | null;\n LongDescription: string | null;\n ShortDescription: string | null;\n}\n\ninterface CustomerPromotionType {\n CustomerId: number;\n TargetCustomerId: number;\n Status: string;\n Discount: number;\n}\n\nexport interface RatePlanDataType {\n PromotionStatus: PromotionStatus | null;\n Code: RateCodeString | null;\n Promotion: PromotionType | null;\n CustomerPromotion: CustomerPromotionType | null;\n}\n\nexport interface GetHotelStayAvailableRatesResult {\n EndDate: Date;\n Rates: RatesRoom[];\n StartDate: Date;\n}\n\nexport interface RatesRoom {\n Key: string;\n Value: RateType[];\n}\n\nexport interface RateType {\n Rate: number;\n RoomCode: string;\n RoomStayAvailabilityCount: number;\n}\n\nexport interface ArrivalRoomType {\n Price: string | null;\n OriginalPrice: string | null;\n Discount: string | null;\n DiscountPrice: string | null;\n DiscountPercent: string | null;\n ArrivalDate: AspDateString;\n Quantity: number;\n RateTier: number | null;\n MinStay: number;\n MaxStay: number;\n Status: string;\n MinPers: number;\n MaxPers: number;\n}\n\nexport interface SeatingsDataType {\n Details: string | null;\n Status: number | 0;\n StatusName: string | undefined;\n Data: SeatingData[];\n}\n\nexport interface SeatingData {\n ItemNumber: string;\n Rates: SeatingRate[];\n Characteristics: string;\n Description: string;\n AQC: AQC;\n}\n\nexport interface SeatingRate {\n Arrival: Date;\n MaxPers: number;\n}\n\nexport interface RoomDataType {\n Arrivals: ArrivalRoomType[] | null;\n Plan: RateCodeString;\n Code: RoomCodeString;\n IsDiscount: boolean;\n IsZeroDiscount: boolean;\n MaxStay: number;\n MinStay: number;\n CustomerPromotion: CustomerPromotionType;\n InvBlockCode: string;\n}\n\ninterface ExtraServiceArrivalType {\n Price: string;\n ArrivalDateS: DKDateString;\n TimeFromS: TimeString | null;\n TimeToS: TimeString | null;\n}\n\nexport interface ServicePriceType {\n Id: string;\n ServiceId: string;\n Arrivals: ExtraServiceArrivalType[];\n Price: string;\n Type: string;\n Count: number;\n}\n\nexport interface AQC {\n Room: boolean;\n Adult: boolean;\n Child: boolean;\n Infant: boolean;\n Teenager: boolean;\n Senior: boolean;\n}\n","export * from './rate.model';\nexport * from './room.model';\nexport * from './data.model';\n","export * from './config';\nexport * from './customer';\nexport * from './hotel';\nexport * from './locale';\nexport * from './promotion';\nexport * from './tracking';\n","export * from './locale.service';\n","import { NgModule, Optional, SkipSelf } from '@angular/core';\nimport { LocaleService } from './locale.service';\n\n@NgModule({\n imports: [],\n declarations: [],\n providers: [LocaleService],\n exports: [],\n})\nexport class LocaleModule {\n constructor(@Optional() @SkipSelf() parentModule: LocaleModule) {\n if (parentModule) {\n throw new Error('LocaleModule is already loaded. Import it in the CoreModule only');\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { from, lastValueFrom, Subject } from 'rxjs';\n\nimport { HttpClient } from '@angular/common/http';\nimport { LogService } from '@com/logging';\nimport { first, shareReplay, switchMap } from 'rxjs/operators';\nimport { StorageClient } from 'src/app/helpers';\nimport { Locale, SupportedLocales, getIsoFromLocale } from 'src/i18n';\nimport { ConfigService } from '../config';\nimport { DateAdapter } from '@angular/material/core';\n\nexport { Locale };\n\nconst CssClasses = {\n [Locale.DK]: 'flag-dk',\n [Locale.DE]: 'flag-de',\n [Locale.GB]: 'flag-gb',\n [Locale.FO]: 'flag-fo',\n [Locale.IS]: 'flag-is',\n [Locale.GL]: 'flag-gl',\n [Locale.SE]: 'flag-se',\n [Locale.NO]: 'flag-no',\n};\n\nlet translations: Partial<{ [K in Locale]: () => Promise }> = {};\n\n@Injectable()\nexport class LocaleService {\n private static StoredLocale = new StorageClient(sessionStorage, 'locale', null as string | null);\n static SupportedLocales = SupportedLocales;\n private _locale$ = new Subject();\n locale$ = this._locale$.pipe(shareReplay(1));\n translations$ = this.locale$.pipe(switchMap((locale) => from(LocaleService.LoadTranslations(locale))));\n\n constructor(\n private log: LogService,\n private http: HttpClient,\n private config: ConfigService,\n private dateAdapter: DateAdapter,\n ) {\n if (LocaleService.SupportedLocales.length === 0) {\n alert('Fatal error. No locales are supported by application.');\n }\n this.locale$.subscribe((locale) => LocaleService.StoredLocale.set(locale));\n }\n\n async getLocale() {\n return await lastValueFrom(this.locale$.pipe(first()));\n }\n\n async setLocale(locale: Locale) {\n this.dateAdapter.setLocale(getIsoFromLocale(locale));\n await LocaleService.LoadTranslations(locale);\n this._locale$.next(locale);\n }\n\n async getCultures() {\n const config = await this.config.getAppSettings();\n const cultures = [] as Culture[];\n try {\n const locales = await lastValueFrom(\n this.http.get(config.ECommerceDataProvider + '/api/ECommerceData/GetLanguages'),\n );\n // .get('https://localhost:44343/api/ECommerceData/GetLanguages')\n if (locales.length === 0) {\n throw new Error('No languages were provided by server');\n }\n const failedCultureCodes = [] as string[];\n locales.forEach((c) => {\n try {\n const locale = LocaleService.ToLocale(c.ISOCode);\n cultures.push({\n Code: locale,\n Name: c.Name,\n CssClass: CssClasses[locale],\n });\n } catch (err) {\n failedCultureCodes.push(c.ISOCode);\n }\n });\n if (failedCultureCodes.length > 0) {\n this.log.error(`Unknown culture codes used: ${failedCultureCodes}`);\n }\n if (cultures.length === 0) {\n throw new Error(\n `Any provided culture is not supported by application. ${JSON.stringify({ cultures, SupportedLocales })}`,\n );\n }\n } catch (err: any) {\n this.log.fatal(`Failed to load cultures from server. Err: ${err.message}`);\n throw new Error('Failed to load available languages');\n }\n return cultures;\n }\n\n async determineLocale(cultures: Culture[], urlLocale: string | undefined) {\n const prefferedLocales = this.getPrefferedLocales(urlLocale);\n let prefferedLocale = prefferedLocales.find((locale) => !!cultures.find((culture) => culture.Code === locale));\n if (!prefferedLocale) {\n this.log.warn('No preffered locales are available.');\n const backendLanguage = await this.getBackendLocale();\n prefferedLocale = cultures.find((culture) => culture.Code === backendLanguage) ? backendLanguage : undefined;\n if (!prefferedLocale) {\n this.log.error(`Backend language ${backendLanguage} is not supported by application`);\n prefferedLocale = cultures[0].Code;\n }\n }\n return prefferedLocale;\n }\n\n private async getBackendLocale() {\n const backendLanguage = (await this.config.getInitialSearchParams()).language;\n try {\n return LocaleService.ToLocale(backendLanguage);\n } catch {\n this.log.error(`Backend language ${backendLanguage} is not supported by application`);\n return undefined;\n }\n }\n\n private getBrowserLocales(): string[] {\n const n: Navigator & { userLanguage?: string } = navigator;\n let locales: string[] = [];\n if (n.language) {\n locales.push(n.language);\n }\n if (n.userLanguage) {\n locales.push(n.userLanguage);\n }\n if (n.languages instanceof Array) {\n locales = locales.concat(n.languages);\n }\n return locales;\n }\n\n private getPrefferedLocales(urlLocale: string | undefined) {\n const languages: Locale[] = [];\n if (urlLocale) {\n const language = LocaleService.SupportedLocales.find((l) => l === urlLocale);\n if (language) {\n languages.push(language);\n } else {\n this.log.error(`${urlLocale} provided in URL is not supported.`);\n }\n }\n const storedLocale = LocaleService.StoredLocale.get();\n if (storedLocale) {\n const language = LocaleService.SupportedLocales.find((l) => l === storedLocale);\n if (language) {\n languages.push(language);\n } else {\n this.log.error(`Stored language ${storedLocale} is not supported by application`);\n }\n }\n const browserLocales = this.getBrowserLocales();\n browserLocales.forEach((l) => {\n LocaleService.SupportedLocales.forEach((supportedLocale) => {\n if (supportedLocale.substring(0, 2) === l.substring(0, 2)) {\n languages.push(supportedLocale);\n }\n });\n });\n if (languages.length === 0) {\n this.log.info('There are no available browser languages application can use');\n }\n return languages;\n }\n\n static ToLocale(cultureCode: string) {\n const locale = LocaleService.SupportedLocales.find((l) => l === (cultureCode as Locale));\n if (!locale) {\n throw new Error(`${cultureCode} language is not supported`);\n }\n return locale;\n }\n\n static async PopulateTranslations() {\n translations = SupportedLocales.reduce((previousValue, currentValue) => {\n previousValue[currentValue] = async () =>\n (\n await import(\n /* webpackChunkName: \"[request]\" */\n /* webpackMode: \"eager\" */\n `src/i18n/locale-${currentValue}`\n )\n ).messages;\n return previousValue;\n }, {} as typeof translations);\n }\n\n static async LoadTranslations(locale: Locale) {\n if (Object.keys(translations).length === 0) {\n await LocaleService.PopulateTranslations();\n }\n\n return translations[locale]?.();\n }\n}\n\ntype GetCulturesResponse = {\n ISOCode: string;\n Name: string;\n ImageUrl: string;\n}[];\n\nexport interface Culture {\n Code: Locale;\n Name: string;\n CssClass: string;\n}\n","export * from './payment.service';\nexport * from './reservation.service';\n","import { NgModule, Optional, SkipSelf } from '@angular/core';\nimport { PaymentService } from './payment.service';\nimport { ReservationService } from './reservation.service';\n\n@NgModule({\n imports: [],\n declarations: [],\n providers: [ReservationService, PaymentService],\n exports: [],\n})\nexport class PaymentModule {\n constructor(@Optional() @SkipSelf() parentModule: PaymentModule) {\n if (parentModule) {\n throw new Error('PaymentModule is already loaded. Import it in the CoreModule only');\n }\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { DateHelper, Guid } from '../../../helpers';\nimport { ApplicationStateService, BasketService, BookingService, Loader, OriginEnum } from '../../services';\nimport { ConfigService } from '../config';\nimport { LocaleService } from '../locale';\nimport { environment } from '../../../../environments/environment';\nimport { GiftcardPaymentModel, ReservationType } from './reservation.service';\nimport { lastValueFrom } from 'rxjs';\nimport { NavigationHelper } from 'src/app/helpers/navigation-helper';\n\n@Injectable()\nexport class PaymentService {\n constructor(\n private applicationService: ApplicationStateService,\n private http: HttpClient,\n private config: ConfigService,\n private localeService: LocaleService,\n private loader: Loader,\n private navigationHelper: NavigationHelper,\n private bookingService: BookingService,\n private basketService: BasketService,\n ) {}\n\n async makeNetsEasyPaymentUrl(\n origin: any,\n resGuid: Guid,\n reservation: ReservationType | undefined,\n giftcardNumber: string,\n ) {\n let paymentFlow = 2;\n let endDate = '';\n if (reservation) {\n paymentFlow = reservation.PaymentFlowToUse;\n\n if (reservation.rooms.length !== 0) {\n const date = DateHelper.FromAspDate(reservation.rooms[0].departure);\n endDate = DateHelper.toServerDateFormatString(date);\n } else {\n endDate = DateHelper.toServerDateFormatString(new Date());\n }\n }\n\n const [appSettings] = await Promise.all([this.config.getAppSettings()]);\n const isPaymentLink = this.applicationService.Origin === OriginEnum.PaymentLink ? true : false;\n\n const res = await lastValueFrom(\n this.http.get(\n `${\n environment.production ? appSettings.ECommerceDataProvider : 'https://localhost:44343'\n }/HandleEasyPayment?hotelCode=${\n this.applicationService.CurrentHotelCode\n }&resGuid=${resGuid}&langCode=${await this.localeService.getLocale()}&paymentFlow=${paymentFlow}&endDate=${endDate}&giftcardNumber=${giftcardNumber}&isPaymentLink=${isPaymentLink}`,\n ),\n );\n\n return res;\n }\n\n async makeNetAxeptPaymentUrl(origin: any, reservation: ReservationType, giftcardNumber: string) {\n let paymentFlow = 2;\n let endDate = '';\n if (reservation) {\n paymentFlow = reservation.PaymentFlowToUse;\n\n if (reservation.rooms.length !== 0) {\n const date = DateHelper.FromAspDate(reservation.rooms[0].departure);\n endDate = DateHelper.toServerDateFormatString(date);\n } else {\n endDate = DateHelper.toServerDateFormatString(new Date());\n }\n }\n\n const isPaymentLink = this.applicationService.Origin === OriginEnum.PaymentLink ? true : false;\n\n const [appSettings] = await Promise.all([this.config.getAppSettings()]);\n const res = await lastValueFrom(\n this.http.get(\n `${\n environment.production ? appSettings.ECommerceDataProvider : 'https://localhost:44343'\n }/HandleAxeptPayment?hotelCode=${this.applicationService.CurrentHotelCode}&resGuid=${\n reservation.resGuid\n }&langCode=${await this.localeService.getLocale()}&paymentFlow=${paymentFlow}&endDate=${endDate}&giftcardNumber=${giftcardNumber}&isPaymentLink=${isPaymentLink}`,\n ),\n );\n\n return res;\n }\n\n async startupPayment(giftcardNumber = '') {\n window.scrollTo(0, 0);\n if (this.applicationService.UseNetsEasy && this.applicationService.Origin !== OriginEnum.GiftCard) {\n await this.loader.using(async () => {\n try {\n // If the basketservice.value is null, we should send the customer back to payment-link window, as we then know that the customer was send from where.\n // For the basketservice not to be null, the customer must have been going through the onlinebooking steps.\n const basket = this.basketService.get();\n if (basket === null) {\n this.applicationService.Origin = OriginEnum.PaymentLink;\n if (this.applicationService.ReservationId && this.applicationService.ReservationId !== '') {\n this.applicationService.ReservationGuid = this.applicationService.ReservationId as Guid;\n }\n }\n\n const sessionReservation = this.bookingService.getReservationOrFail();\n\n const p = await this.makeNetsEasyPaymentUrl(\n this.applicationService.Origin,\n sessionReservation.resGuid!,\n sessionReservation,\n giftcardNumber,\n );\n\n if (p) {\n window.open(p.HostedPaymentPageUrl, '_self');\n }\n } catch (ex) {\n if ((ex as Error).message.includes('Reservation must be defined')) {\n await this.navigationHelper.navigateToPage('search');\n } else {\n await this.navigationHelper.navigateToPage('payment-failed');\n }\n }\n });\n } else if (this.applicationService.UseNetsEasy && this.applicationService.Origin === OriginEnum.GiftCard) {\n await this.loader.using(async () => {\n // If the basketservice.value is null, we should send the customer back to payment-link window, as we then know that the customer was send from where.\n // For the basketservice not to be null, the customer must have been going through the onlinebooking steps.\n const basket = this.basketService.get();\n if (basket === null) {\n this.applicationService.Origin = OriginEnum.PaymentLink;\n if (this.applicationService.ReservationId && this.applicationService.ReservationId !== '') {\n this.applicationService.ReservationGuid = this.applicationService.ReservationId as Guid;\n }\n }\n\n const p = this.bookingService.giftcardEasyInfo.get();\n\n if (p) {\n window.open(p.HostedPaymentPageUrl, '_self');\n }\n });\n } else if (this.applicationService.UseNetAxept && this.applicationService.Origin !== OriginEnum.GiftCard) {\n await this.loader.using(async () => {\n try {\n // If the basketservice.value is null, we should send the customer back to payment-link window, as we then know that the customer was send from where.\n // For the basketservice not to be null, the customer must have been going through the onlinebooking steps.\n const basket = this.basketService.get();\n if (basket === null) {\n this.applicationService.Origin = OriginEnum.PaymentLink;\n if (this.applicationService.ReservationId && this.applicationService.ReservationId !== '') {\n this.applicationService.ReservationGuid = this.applicationService.ReservationId as Guid;\n }\n }\n\n const reservation = this.bookingService.getReservationOrFail();\n\n const p = await this.makeNetAxeptPaymentUrl(this.applicationService.Origin, reservation, giftcardNumber);\n window.open(p.PaymentUrl, '_self');\n } catch (ex) {\n await this.navigationHelper.navigateToPage('payment-failed');\n }\n });\n } else if (this.applicationService.UseNetAxept && this.applicationService.Origin === OriginEnum.GiftCard) {\n await this.loader.using(async () => {\n window.open(this.applicationService.GiftcardPayment, '_self');\n });\n }\n }\n}\n\nexport interface AxeptPaymentResponseModel {\n PaymentUrl: string;\n orderId: string;\n paidAmount: number;\n}\n\nexport interface PaymentInfo {\n cardNumber: string;\n cardCvc: string;\n cardExpMonth: string;\n cardExpYear: string;\n}\n\nexport interface PaymentModel {\n PaymentId: string;\n CheckoutKey?: any;\n HostedPaymentPageUrl: string;\n Error: string;\n GiftcardPaymentModel: GiftcardPaymentModel;\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { LogService } from '@com/logging';\nimport { AspDateString, DateHelper, Guid, RoomGuests, TimeString, UTCDateString } from 'src/app/helpers';\nimport { AxeptPaymentResponseModel, PaymentModel } from '.';\nimport { ApplicationStateService, Basket, GiftCardGuestInformation } from '../../services';\nimport { ConfigService, HotelCodeString, PromoCodeString, RateCodeString, RoomCodeString } from '../config';\nimport { Customer, CustomerInfo } from '../customer';\nimport { HotelType } from '../hotel';\nimport { BookingExtraServiceModel, CompanyAgreementDiscountResponseModel } from '../hotel/data-hotel.service';\nimport { HotelService } from '../hotel/hotel.service';\nimport { Locale, LocaleService } from '../locale';\nimport { lastValueFrom } from 'rxjs';\nimport { environment } from '../../../../environments/environment';\nimport { AQC } from 'src/app/core';\n\nexport interface IReservationService {\n createReservation(\n locale: Locale,\n hotel: HotelType,\n promocode: PromoCodeString | undefined,\n customer: Customer,\n information: BookingInformation,\n needSubscribe: boolean,\n useCancelationInsurance: boolean,\n comment: string,\n isAgent: boolean,\n fullGiftcardPayment: number,\n ): Promise;\n}\n\nexport enum PaymentFlowEnum {\n NoPayment = 1,\n FullPayment = 2,\n DepositPayment = 3,\n Ticket = 4,\n}\n\n@Injectable()\nexport class ReservationService implements IReservationService {\n companyAgreements = [] as CompanyAgreementDiscountResponseModel[];\n constructor(\n private http: HttpClient,\n private config: ConfigService,\n private log: LogService,\n private hotelService: HotelService,\n private applicationState: ApplicationStateService,\n private localeService: LocaleService,\n ) {}\n\n async createReservation(\n locale: Locale,\n hotel: HotelType,\n promocode: PromoCodeString | undefined,\n customer: Customer,\n information: BookingInformation,\n needSubscribe: boolean,\n useCancelationInsurance: boolean,\n comment: string,\n isAgent: boolean,\n giftcardPayment: number,\n ) {\n this.log.debug(\n `ReservationService createReservation(${locale}, ${hotel.Code}, ${promocode ? promocode : '*no promocode*'}, ${\n customer.Info.Email\n })`,\n information,\n );\n const [appSettings, initialSearchParams] = await Promise.all([\n this.config.getAppSettings(),\n this.config.getInitialSearchParams(),\n ]);\n const needUpdate = false;\n const customerId = customer.Id;\n\n // Collect all company agreements if logged in, to check if customerpromotion\n if (customer.Company) {\n this.companyAgreements = await this.hotelService.GetCompanyAgreementDiscount(hotel.Code, customer.Company.Id);\n }\n\n let isPaymentEnabled = this.applicationState.NetsPaymentEnabled;\n\n if (isPaymentEnabled && customer.Id !== null) {\n // if payment is enabled and customer exists\n isPaymentEnabled = customer.PaymentRequired; // then set payment to customer status\n }\n\n const seatings: SeatType[] = [];\n if (information.Bookings[0].Seating) {\n for (const booking of information.Bookings) {\n if (booking.Seating) {\n for (const item of booking.Seating) {\n const modiDate = DateHelper.FromUtcDate(item.Date.toString() as UTCDateString);\n const seating: SeatType = {\n hotelCode: information.HotelCode,\n total: item.TotalPrice,\n date: DateHelper.toServerDateFormatString(modiDate) as UTCDateString,\n seatCode: item.SeatCode,\n time: item.Time,\n seatrate: item.SeatRate,\n seatGuests: item.SeatGuest,\n services: information.Bookings[0].AddOns.reduce((data, addOn) => {\n const services: ServiceType[] = [];\n\n for (const serv of addOn.Dates) {\n const date = DateHelper.ConvertToServerDate(new Date(serv.Date));\n const service: ServiceType = {\n count: serv.selectedCount,\n price: addOn.Amount / (serv.selectedCount * addOn.Dates.length),\n from: DateHelper.toAspString(date),\n to: DateHelper.toAspString(date),\n timeFrom: null,\n timeTo: null,\n serviceCode: addOn.ServiceId,\n serviceId: addOn.Id.toString(),\n };\n services.push(service);\n }\n data.push(...services);\n return data;\n }, []),\n };\n seatings.push(seating);\n }\n }\n }\n }\n\n const request: ReservationTypeRequest = {\n giftcards: [],\n seats: seatings,\n rooms: information.Bookings.map((booking) => {\n const hasPromotion = booking.Price !== booking.OriginalPrice;\n const hasPromocodePromotion = booking.HasPromotionForCustomer ? false : hasPromotion;\n const room: RoomType = {\n guestName: null,\n arrival: DateHelper.toAspString(DateHelper.ConvertToServerDate(DateHelper.FromUtcDate(information.Arrival))),\n departure: DateHelper.toAspString(\n DateHelper.ConvertToServerDate(\n DateHelper.addDays(DateHelper.FromUtcDate(information.Arrival), information.Stay),\n ),\n ),\n aqcs: RoomGuests.Categories.reduce((arr, aqc) => {\n if (booking.Persons !== undefined) {\n const count = booking.Persons.get(aqc);\n if (count > 0) {\n arr.push({\n aqc: aqc.toString(),\n count,\n type: 0, // TODO: try to remove as it's useless\n });\n }\n }\n return arr;\n }, []),\n guests: [this.GetGuest(booking.Guest, customer.Info, isAgent)],\n roomCode: booking.RoomCode,\n hotelCode: information.HotelCode,\n invBlockCode: '',\n useCancelPolicy: useCancelationInsurance,\n ratePlan: booking.RateCode,\n price: booking.Price,\n services: booking.AddOns.reduce((data, addOn) => {\n const services: ServiceType[] = [];\n\n for (const serv of addOn.Dates) {\n const date = DateHelper.ConvertToServerDate(new Date(serv.Date));\n const service: ServiceType = {\n count: serv.selectedCount,\n price: addOn.Amount / (serv.selectedCount * addOn.Dates.length),\n from: DateHelper.toAspString(date),\n to: DateHelper.toAspString(date),\n timeFrom: null,\n timeTo: null,\n serviceCode: addOn.ServiceId,\n serviceId: addOn.Id.toString(),\n };\n services.push(service);\n }\n data.push(...services);\n return data;\n }, []),\n promotionData: {\n promotionCode: (hasPromocodePromotion ? promocode : undefined) || null,\n discount: hasPromocodePromotion ? 1 - booking.Price / booking.OriginalPrice : 0,\n },\n customerRateId:\n this.companyAgreements.filter((x) => x.RatePlanCode === booking.RateCode).length > 0 ? customerId : null,\n };\n return room;\n }),\n services: null,\n isCustomer: true,\n bookingAdmin: {\n address: customer.Info.Address1,\n city: customer.Info.City,\n country: customer.Info.Country,\n email: customer.Info.Email,\n firstName: customer.Info.FirstName,\n lastName: customer.Info.LastName,\n mobilePhone: customer.Info.Phone,\n phone: '',\n postal: customer.Info.ZipCode,\n NeedUpdate: needUpdate,\n CustomerId: customerId ? customerId.toString() : null,\n userData: customer.Company\n ? {\n CompanyAddress1: customer.Company.Address1,\n CompanyAddress2: customer.Company.Address2,\n CompanyCity: customer.Company.City,\n CompanyCountryCode: customer.Company.CountryCode,\n CompanyCountryName: customer.Company.CountryName,\n CompanyName: customer.Company.Name,\n CompanyPhone: customer.Company.Phone,\n CompanyZipCode: customer.Company.ZipCode,\n CustomerContactId: customerId ? customerId.toString() : undefined,\n Email: customer.Info.Email,\n FirstName: customer.Info.FirstName,\n LastName: customer.Info.LastName,\n PaymentRequired: customer.PaymentRequired,\n Phone: customer.Info.Phone,\n CustomerId: customer.Company.Id.toString(),\n }\n : undefined,\n },\n needSubscribe,\n comment,\n lang: locale,\n total:\n this.GetTotal(information.Bookings) + ((useCancelationInsurance ? information.CancelationInsurance : 0) || 0),\n isHotelDepartment: hotel.IsHotelDepartment,\n payment: {\n merchant: hotel.Settings.MerchantID || appSettings.MerchantId.toString(),\n currency: initialSearchParams.Currency,\n isPaymentEnabled,\n transactionId: '',\n },\n };\n let isOnlySeating = false;\n for (const item of request.rooms) {\n if (item.roomCode === ('' as RoomCodeString) && item.ratePlan === ('' as RateCodeString)) {\n isOnlySeating = true;\n } else {\n isOnlySeating = false;\n }\n }\n\n if (isOnlySeating) {\n request.rooms = [] as RoomType[];\n }\n\n const endpoint = `${appSettings.BookingServiceUrl}/PlaceReservation?netsEasy=${this.applicationState.UseNetsEasy}&giftcardAmount=${giftcardPayment}`;\n this.log.debug(\n `ReservationService creating reservation for ${request.rooms.length} rooms. Endpoint: ${endpoint}`,\n request,\n );\n\n const response = await lastValueFrom(this.http.post(endpoint, request));\n\n this.log.debug(`ReservationService reservation created with response`, response);\n if (!response.Reservation || response.ErrorText || !response.Success) {\n this.log.debug(`Invalid create reservation response recieved`);\n throw new Error(`${response.ErrorText}`);\n }\n if (Math.abs(response.Reservation.total - request.total) > 0.001) {\n this.log.fatal(\n `Price from front-end(${request.total}) and back-end(${response.Reservation.total}) does not match. Price from back-end will be used.`,\n );\n }\n if (!response.Reservation.reservationId || !response.Reservation.bookingCode) {\n throw new Error(`Failed to complete reservation. 'reservationId' and 'bookingCode' should be set.`);\n }\n\n const result: ReservationType = {\n ...request,\n HotelCode: this.applicationState.CurrentHotelCode,\n PaymentDue: response.Reservation.PaymentDue,\n PaymentFlowToUse: response.Reservation.PaymentFlowToUse,\n bookingCode: response.Reservation.bookingCode,\n cancellationFee: response.Reservation.cancellationFee,\n paid: response.Reservation.paid,\n reservationId: response.Reservation.reservationId,\n resGuid: response.Reservation.resGuid,\n paidWithGiftcard: 0,\n total:\n response.Reservation.PaymentFlowToUse === PaymentFlowEnum.Ticket ? request.total : response.Reservation.total,\n };\n this.applicationState.ReservationGuid = response.Reservation.resGuid;\n return result;\n }\n\n GetGuest(guest: CustomerInfo, bookingAdmin: CustomerInfo, isAgent: boolean) {\n if (isAgent) {\n return {\n firstName: guest.FirstName,\n lastName: guest.LastName,\n email: guest.Email,\n mobilePhone: guest.Phone,\n country: guest.Country,\n };\n }\n\n return {\n firstName: bookingAdmin.FirstName,\n lastName: bookingAdmin.LastName,\n email: bookingAdmin.Email,\n mobilePhone: bookingAdmin.Phone,\n country: bookingAdmin.Country,\n };\n }\n\n async GetReservation(reservationId: string, locale: Locale) {\n const [appSettings, initialSearchParams] = await Promise.all([\n this.config.getAppSettings(),\n this.config.getInitialSearchParams(),\n ]);\n\n const response = await lastValueFrom(\n this.http.get(\n `${appSettings.SpectraApiUrl}/api/internal/payment/deposit/${reservationId}`,\n ),\n );\n\n const hotel = await this.hotelService.GetECommerceDepartmentInformation(response.HotelCode, locale);\n\n // map response to OB reservation reservation structure.\n const reservation: ReservationType = {\n resGuid: response.ReservationGuid as Guid,\n PaymentDue: response.PaymentDue,\n PaymentFlowToUse: response.PaymentFlow,\n bookingCode: response.ReservationGuid,\n cancellationFee: response.CancellationProtectionAmount,\n paid: response.AlreadyPaidAmount,\n reservationId: response.ReservationNumber,\n paidWithGiftcard: 0,\n giftcards: [],\n HotelCode: response.HotelCode,\n rooms: response.Roomstays.map((stay) => {\n const room: RoomType = {\n arrival: DateHelper.toAspString(\n DateHelper.ConvertToServerDate(\n DateHelper.FromValues(stay.Arrival.Year, stay.Arrival.Month, stay.Arrival.Day),\n ),\n ),\n departure: DateHelper.toAspString(\n DateHelper.ConvertToServerDate(\n DateHelper.FromValues(stay.Departure.Year, stay.Departure.Month, stay.Departure.Day),\n ),\n ),\n price: stay.Amount,\n roomCode: stay.RoomTypeName as RoomCodeString,\n ratePlan: '' as RateCodeString,\n invBlockCode: null,\n hotelCode: response.HotelCode,\n guestName: stay.GuestName,\n useCancelPolicy:\n response.CancellationProtectionAmount !== undefined && response.CancellationProtectionAmount > 0,\n services: stay.ExtraServices.map((es) => {\n const ser: ServiceType = {\n count: es.Quantity,\n price: es.TotalAmount,\n serviceCode: es.ServiceName,\n from: '' as AspDateString,\n to: '' as AspDateString,\n timeFrom: null,\n timeTo: null,\n serviceId: '',\n priceIncluded: true,\n serviceType: es.ServiceType,\n ServiceDate: es.ServiceDate,\n };\n return ser;\n }),\n guests: [],\n aqcs: null,\n promotionData: null,\n customerRateId: null,\n };\n\n return room;\n }),\n seats: [],\n isCustomer: true,\n needSubscribe: false,\n comment: '',\n bookingAdmin: {\n customerNumber: -1,\n firstName: '',\n lastName: response.ReservationName,\n email: '',\n country: '',\n mobilePhone: '',\n phone: '',\n address: '',\n city: '',\n postal: '',\n NeedUpdate: false,\n CustomerId: null,\n userData: undefined,\n },\n total: 0,\n isHotelDepartment: hotel.IsHotelDepartment,\n lang: locale,\n services: response.ExtraServices.map((es) => {\n const ser: ServiceType = {\n count: es.Quantity,\n price: es.TotalAmount,\n serviceCode: es.ServiceName,\n from: '' as AspDateString,\n to: '' as AspDateString,\n timeFrom: null,\n timeTo: null,\n serviceId: '',\n priceIncluded: true,\n serviceType: es.ServiceType,\n ServiceDate: es.ServiceDate,\n };\n return ser;\n }),\n payment: {\n merchant: hotel.Settings.MerchantID || appSettings.MerchantId.toString(),\n currency: initialSearchParams.Currency,\n isPaymentEnabled: true,\n transactionId: '',\n },\n };\n\n return reservation;\n }\n\n async CancelReservation(reservationId: string) {\n const [appSettings] = await Promise.all([this.config.getAppSettings()]);\n\n return await lastValueFrom(\n this.http.delete(\n `${appSettings.BookingServiceUrl}/CancelReservation?reservationId=${reservationId}`,\n ),\n );\n }\n\n async PlaceGiftcardOrderAxept(giftcards: BookingInformationGiftcard[], customer: CustomerInfo) {\n const giftcardCommandModel = await this.BuildGiftcardCommandModel(giftcards, customer);\n\n const [appSettings] = await Promise.all([this.config.getAppSettings()]);\n\n const response = await lastValueFrom(\n await this.http.post(\n `${\n environment.production ? appSettings.ECommerceDataProvider : 'https://localhost:44343'\n }/HandleAxeptBuyGiftcardPayment?hotelCode=${this.applicationState.CurrentHotelCode}`,\n giftcardCommandModel,\n ),\n );\n\n return response;\n }\n\n async PlaceGiftcardOrderEasy(giftcards: BookingInformationGiftcard[], customer: CustomerInfo) {\n const giftcardCommandModel = await this.BuildGiftcardCommandModel(giftcards, customer);\n\n const [appSettings] = await Promise.all([this.config.getAppSettings()]);\n\n const response = await lastValueFrom(\n this.http.post(\n `${\n environment.production ? appSettings.ECommerceDataProvider : 'https://localhost:44343'\n }/HandleEasyBuyGiftcardPayment?hotelCode=` +\n this.applicationState.CurrentHotelCode +\n '&langCode=' +\n (await this.localeService.getLocale()),\n giftcardCommandModel,\n ),\n );\n\n return response;\n }\n\n async GetGiftcardInformation(giftcardCode: string) {\n const [appSettings] = await Promise.all([this.config.getAppSettings()]);\n const response = await lastValueFrom(\n this.http.get(\n `${\n environment.production ? appSettings.ECommerceDataProvider : 'https://localhost:44343'\n }/GetGiftcardInfo?giftcardCode=${giftcardCode}`,\n ),\n ).catch(() => undefined);\n\n if (response) {\n const res: GetGiftcardInfoResult = JSON.parse(response);\n\n return res;\n } else {\n return {} as GetGiftcardInfoResult;\n }\n }\n\n async RegisterGiftcardPayment(orderId: number, transactionId: Guid) {\n const [appSettings] = await Promise.all([this.config.getAppSettings()]);\n const response = await lastValueFrom(\n this.http.get(\n `${\n environment.production ? appSettings.ECommerceDataProvider : 'https://localhost:44343'\n }/RegisterGiftcardPayment?orderId=${orderId}&paymentId=${transactionId}`,\n ),\n );\n\n return response;\n }\n\n BuildReservationTypeForGiftcard(basket: Basket, paidAmount: number, orderId: string) {\n const reservationType = {\n rooms: [] as RoomType[],\n seats: [] as SeatType[],\n giftcards: [] as GiftcardType[],\n } as ReservationTypeRequest;\n\n if (basket.bookings[0].Giftcards) {\n for (const item of basket.bookings[0].Giftcards) {\n const giftcard = {\n cardName: item.Name,\n hotelCode: this.applicationState.CurrentHotelCode,\n total: item.TotalPrice,\n } as GiftcardType;\n\n reservationType.giftcards.push(giftcard);\n }\n }\n reservationType.total = paidAmount;\n\n const result: ReservationType = {\n ...reservationType,\n PaymentDue: reservationType.total,\n PaymentFlowToUse: PaymentFlowEnum.FullPayment,\n bookingCode: '',\n cancellationFee: 0,\n paid: paidAmount,\n reservationId: orderId,\n total: reservationType.total,\n paidWithGiftcard: 0,\n HotelCode: this.applicationState.CurrentHotelCode,\n };\n\n return result;\n }\n\n async RegisterPayment(hotelCode: string, resGuid: Guid, paymentId: Guid, paymentFlow: PaymentFlowEnum) {\n const [appSettings] = await Promise.all([this.config.getAppSettings()]);\n return await lastValueFrom(\n this.http.get(\n `${\n environment.production ? appSettings.ECommerceDataProvider : 'https://localhost:44343'\n }/RegisterPayment?hotelCode=${hotelCode}&resGuid=${resGuid}&paymentId=${paymentId}&paymentFlow=${paymentFlow}`,\n ),\n );\n }\n\n async SendNotification(\n reservation: BookingInformation,\n resGuid: Guid,\n langCode: string,\n paymentFlow: number,\n prepare = false,\n ) {\n const [appSettings] = await Promise.all([this.config.getAppSettings()]);\n\n return await lastValueFrom(\n this.http.post(\n `${\n environment.production ? appSettings.ECommerceDataProvider : 'https://localhost:44343'\n }/sendNotification?resGuid=${resGuid}&langCode=${langCode}&paymentFlow=${paymentFlow}&prepare=${prepare}`,\n reservation,\n ),\n ).catch((x) => this.log.error('It was not possible to send a Notification to resGuid: ' + resGuid, x));\n }\n\n GetTotal(bookings: BookingInformationBooking[], includeServices = true) {\n if (bookings.length !== 0 && bookings[0].GiftCard !== undefined && bookings[0].GiftCard.length !== 0) {\n return this.calculateTotalPriceForGiftcards(bookings[0].GiftCard);\n }\n\n const result = bookings.reduce(\n (sum, booking) =>\n booking.AddOns.reduce(\n (addOnsSum, addOn) => addOnsSum + (includeServices ? addOn.Amount : 0),\n booking.Seating\n ? sum + (booking.Price ? booking.Price : 0) + this.calculateTotalPriceForSeating(booking.Seating)\n : sum + (booking.Price ? booking.Price : 0),\n ),\n 0,\n );\n\n return result;\n }\n\n private async BuildGiftcardCommandModel(giftcards: BookingInformationGiftcard[], customer: CustomerInfo) {\n const mainWebSiteOrigin = location.origin + '/booking';\n const languageCode = await this.localeService.getLocale();\n\n const [appSettings] = await Promise.all([this.config.getAppSettings()]);\n\n const order = {\n AcceptUrl: mainWebSiteOrigin + '/AcceptPayment/bookingpayment/{orderid}',\n CancelUrl: appSettings.PaymentCancelUrl,\n PreferredCulture: languageCode,\n } as PlaceGiftCardProductsOrderCommand;\n order.Buyer = {\n City: customer.City,\n Email: customer.Email,\n FirstName: customer.FirstName,\n PhoneNo: customer.Phone,\n Surname: customer.LastName,\n ZipCode: customer.ZipCode,\n Address: customer.Address1,\n } as BuyerDTO;\n\n const recipient = {\n Adress: customer.Address1,\n City: customer.City,\n Email: customer.Email,\n FirstName: customer.FirstName,\n Message: '',\n Surname: customer.LastName,\n ZipCode: customer.ZipCode,\n } as RecipientDTO;\n\n const giftcardOrderItems = [] as GiftCardOrderItemDTO[];\n\n const res = [] as PDFGiftCardDTO[];\n\n for (const item of giftcards) {\n const giftcard = {} as GiftCardOrderItemDTO;\n giftcard.Id = item.Id;\n giftcard.Amount = item.PricePerPiece;\n giftcard.Name = item.Name;\n\n const card = {\n txtTo: item.GuestInformation.ToName,\n txtFrm: item.GuestInformation.FromName,\n txtMessage: item.GuestInformation.GiftcardMessage,\n showPrice: true,\n } as PDFGiftCardDTO;\n res.push(card);\n\n giftcardOrderItems.push(giftcard);\n }\n order.OrderItems = giftcardOrderItems;\n order.pdfCards = res;\n order.Recipient = recipient;\n\n return order;\n }\n\n private calculateTotalPriceForSeating(seatings: BookingInformationSeating[]) {\n let amount = 0;\n\n for (const seat of seatings) {\n amount = amount + seat.TotalPrice;\n }\n return amount;\n }\n\n private calculateTotalPriceForGiftcards(giftcards: BookingInformationGiftcard[]) {\n let amount = 0;\n\n for (const card of giftcards) {\n amount = amount + card.TotalPrice;\n }\n return amount;\n }\n}\n\nexport interface GetGiftcardInfoResult {\n IsActive: boolean;\n Name: string;\n Number: string;\n RemainingAmount: number;\n}\n\nexport interface GiftcardPaymentModel {\n OrderId: string;\n PaidAmount: string;\n CurrencyCode: string;\n}\n\ninterface PlaceGiftCardProductsOrderCommand {\n AcceptUrl: string;\n CancelUrl: string;\n PreferredCulture: string;\n Buyer: BuyerDTO;\n OrderItems: GiftCardOrderItemDTO[];\n pdfCards: PDFGiftCardDTO[];\n Recipient: RecipientDTO;\n}\n\ninterface BuyerDTO {\n FirstName: string;\n Surname: string;\n ZipCode: string;\n City: string;\n PhoneNo: string;\n Email: string;\n Address: string;\n}\n\ninterface GiftCardOrderItemDTO {\n Name: string;\n Amount: number;\n Id: number;\n}\n\ninterface PDFGiftCardDTO {\n txtTo: string;\n txtFrm: string;\n txtMessage: string;\n showPrice: boolean;\n}\n\ninterface RecipientDTO {\n FirstName: string;\n Surname: string;\n Adress: string;\n ZipCode: string;\n City: string;\n Message: string;\n Email: string;\n}\n\nexport interface BookingInformation {\n Bookings: BookingInformationBooking[];\n HotelCode: HotelCodeString;\n Arrival: UTCDateString;\n Stay: number;\n CancelationInsurance: number | null;\n Total: number;\n}\n\nexport interface BookingInformationBooking {\n RoomName: string;\n RateName: string;\n RoomCode: RoomCodeString;\n RateCode: RateCodeString;\n RateDescription: string;\n HasPromotionForCustomer: boolean;\n Price: number;\n Persons: RoomGuests;\n Guest: CustomerInfo;\n OriginalPrice: number;\n AddOns: BookingExtraServiceModel[];\n Seating: BookingInformationSeating[] | undefined;\n GiftCard: BookingInformationGiftcard[] | undefined;\n}\n\nexport interface BookingInformationGiftcard {\n Name: string;\n PricePerPiece: number;\n TotalPrice: number;\n Count: number | undefined;\n Id: number;\n GuestInformation: GiftCardGuestInformation;\n}\n\nexport interface BookingInformationSeating {\n Name: string;\n PricePerPiece: number;\n TotalPrice: number;\n Count: number | undefined;\n Date: Date;\n SeatCode: string;\n Time: string;\n SeatRate: string;\n SeatingPlanName: string;\n SeatGuest: SeatProfileType[];\n}\n\ninterface ServiceType {\n count: number;\n price: number;\n from: AspDateString;\n to: AspDateString;\n timeFrom: TimeString | null;\n timeTo: TimeString | null;\n serviceCode: string;\n serviceId: string;\n priceIncluded?: boolean;\n serviceType?: string;\n ServiceDate?: string;\n}\n\ninterface GuestProfileType {\n firstName: string;\n lastName: string;\n email: string;\n country: string;\n mobilePhone: string;\n}\n\ninterface AqcType {\n count: number;\n type: number;\n aqc: string;\n}\n\ninterface PromotionType {\n discount: number;\n promotionCode: PromoCodeString | null;\n}\n\nexport interface RoomType {\n arrival: AspDateString;\n departure: AspDateString;\n price: number;\n roomCode: RoomCodeString;\n ratePlan: RateCodeString;\n invBlockCode: string | null;\n hotelCode: HotelCodeString;\n useCancelPolicy: boolean;\n services: ServiceType[];\n guests: GuestProfileType[];\n guestName: string | null;\n aqcs: AqcType[] | null;\n promotionData: PromotionType | null;\n customerRateId: number | null;\n}\n\nexport interface SeatProfileType {\n SeatId: string;\n VareNr: string;\n Name: string;\n Count: number;\n Price: number;\n Date: UTCDateString;\n Time: string;\n AQC: AQC | undefined;\n}\n\nexport interface SeatType {\n date: UTCDateString;\n hotelCode: HotelCodeString;\n time: string;\n total: number;\n seatCode: string;\n seatGuests: SeatProfileType[];\n seatrate: string;\n services: ServiceType[];\n}\n\ninterface UserType {\n CompanyAddress1?: string;\n CompanyAddress2?: string;\n CompanyCity?: string;\n CompanyCountryCode?: string;\n CompanyCountryName?: string;\n CompanyName?: string;\n CompanyPhone?: string;\n CompanyZipCode?: string;\n CustomerContactId?: string;\n Email?: string;\n FirstName?: string;\n LastName?: string;\n PaymentRequired?: boolean;\n Phone?: string;\n CustomerId?: string;\n}\n\ninterface ProfileType {\n customerNumber?: number;\n firstName: string;\n lastName: string;\n email: string;\n country: string;\n mobilePhone: string;\n phone: string;\n address: string;\n city: string;\n postal: string;\n NeedUpdate: boolean;\n CustomerId: string | null;\n userData?: UserType;\n}\n\ninterface PaymentType {\n merchant: string;\n currency: string;\n isPaymentEnabled: boolean;\n transactionId: string;\n}\n\nexport interface GiftcardType {\n hotelCode: HotelCodeString;\n total: number;\n cardName: string;\n}\n\nexport interface ReservationTypeRequest {\n rooms: RoomType[];\n seats: SeatType[];\n giftcards: GiftcardType[];\n isCustomer: boolean;\n needSubscribe: boolean;\n comment: string;\n bookingAdmin: ProfileType;\n isHotelDepartment: boolean;\n lang: Locale;\n payment: PaymentType;\n total: number;\n services: ServiceType[] | null;\n}\n\ninterface ReservationTypeResponse {\n PaymentDue: number;\n PaymentFlowToUse: PaymentFlowEnum;\n bookingCode: string;\n cancellationFee: number;\n isCustomer: boolean;\n isHotelDepartment: boolean;\n needSubscribe: boolean;\n paid: number;\n reservationId: string;\n total: number;\n resGuid: Guid;\n}\n\nexport interface ReservationType extends ReservationTypeRequest {\n PaymentDue: number;\n PaymentFlowToUse: PaymentFlowEnum;\n bookingCode: string;\n cancellationFee: number;\n paid: number;\n paidWithGiftcard: number;\n reservationId: string;\n total: number;\n resGuid?: Guid;\n HotelCode: string;\n}\n\nexport interface PlaceReservationResponse {\n Success: boolean;\n ErrorText: string;\n Reservation: ReservationTypeResponse | null;\n}\n\nexport interface ReservationLinkResponse {\n ReservationGuid: string;\n ReservationNumber: string;\n ReservationName: string;\n CancellationProtectionAmount: number;\n GrandTotalAmount: number;\n AlreadyPaidAmount: number;\n PaymentDue: number;\n Roomstays: RoomStayType[];\n ExtraServices: ExtraServiceType[];\n HotelCode: HotelCodeString;\n PaymentFlow: PaymentFlowEnum;\n}\n\ninterface ExtraServiceType {\n ServiceType: string;\n ServiceDate: string;\n ServiceName: string;\n Quantity: number;\n TotalAmount: number;\n}\n\nexport interface RoomStayType {\n RoomTypeName: string;\n GuestName: string;\n Arrival: YearMonthDayType;\n Departure: YearMonthDayType;\n Amount: number;\n ExtraServices: ExtraServiceType[];\n}\n\nexport interface YearMonthDayType {\n Year: number;\n Month: number;\n Day: number;\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { lastValueFrom } from 'rxjs';\nimport { ConfigService, HotelCodeString, PromoCodeString } from '../config';\n\nexport interface IPromotionService {\n getPromotionStatus(hotelCode: HotelCodeString, promocode: PromoCodeString): Promise;\n}\n\n@Injectable()\nexport class DataPromotionService implements IPromotionService {\n constructor(private http: HttpClient, private configService: ConfigService) {}\n\n async getPromotionStatus(hotelCode: HotelCodeString, promocode: PromoCodeString) {\n const config = await this.configService.getAppSettings();\n const data = await lastValueFrom(\n this.http.get(\n `${config.ECommerceDataProvider}/api/eCommerce/GetPromotionCodeStatus/${hotelCode}/${promocode}`,\n // .get(`https://localhost:44343/api/eCommerce/GetPromotionCodeStatus/` + hotelCode + '/' + promocode\n ),\n );\n\n return data;\n }\n}\n\nexport interface GetPromotionCodeStatus {\n Id: number;\n PromotionCode: string;\n RatePlanCode: string;\n DiscountPercentage: number;\n StayFromDate: Date;\n StayToDate: Date;\n DateRestrictionType: number;\n}\n","export * from './promotion.service';\n","import { NgModule, Optional, SkipSelf } from '@angular/core';\nimport { DataPromotionService } from './data-promotion.service';\nimport { PromotionService } from './promotion.service';\n\n@NgModule({\n imports: [],\n declarations: [],\n providers: [DataPromotionService, PromotionService],\n exports: [],\n})\nexport class PromotionModule {\n constructor(@Optional() @SkipSelf() parentModule: PromotionModule) {\n if (parentModule) {\n throw new Error('PromotionModule is already loaded. Import it in the CoreModule only');\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { HotelCodeString, PromoCodeString } from 'src/app/core';\nimport { StorageClient } from 'src/app/helpers';\nimport { DataPromotionService, IPromotionService } from './data-promotion.service';\n@Injectable()\nexport class PromotionService implements IPromotionService {\n private promocode = new StorageClient(sessionStorage, 'Promotion', null as PromoCodeString | null);\n promocode$ = new BehaviorSubject(((promocode) => (promocode ? promocode : undefined))(this.promocode.get()));\n\n constructor(private dataPromotionService: DataPromotionService) {\n this.promocode$.subscribe((promocode) => {\n this.promocode.set(promocode ? promocode : null);\n });\n }\n\n getPromocode() {\n return this.promocode$.getValue();\n }\n\n async getPromotionStatus(hotelCode: HotelCodeString, promocode: PromoCodeString) {\n return await this.dataPromotionService.getPromotionStatus(hotelCode, promocode);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LogService } from '@com/logging';\nimport { ConfigService } from '../config';\nimport { ReservationType } from '../payment';\nimport { TrackingClient } from './tracking-client.interface';\n\n@Injectable()\nexport class FacebookPixelClientService implements TrackingClient {\n private facebookPixel = this.initFacebookPixel();\n private page = '';\n\n constructor(private log: LogService, private configService: ConfigService) {}\n\n async pageView(page: string) {\n await this.withFacebookPixel((facebookPixel) => {\n if (this.page !== page) {\n this.page = page;\n facebookPixel('track', 'PageView');\n this.log.debug(`FacebookPixelService pageView(${page})`);\n }\n });\n }\n\n async addToCart(category: string, entityType: string, name: string, count: number) {\n await this.withFacebookPixel((facebookPixel) => {\n const item = {\n content_ids: [name],\n content_type: 'product',\n contents: [\n {\n id: name,\n quantity: count,\n },\n ],\n };\n facebookPixel('track', 'AddToCart', item);\n this.log.debug('FacebookPixelService track AddToCart', item);\n });\n }\n\n async revenue(reservation: ReservationType) {\n if (reservation && !reservation.payment) {\n return;\n }\n await this.withFacebookPixel((facebookPixel) => {\n const contents: FacebookPixelProductItem[] = [];\n reservation.rooms.map((room) => {\n contents.push({\n id: `${room.roomCode}-${room.ratePlan}`,\n quantity: 1,\n item_price: room.price,\n });\n room.services.map((service) => {\n contents.push({\n id: `${room.roomCode}-${room.ratePlan}-${service.serviceCode}`,\n quantity: service.count,\n item_price: service.price,\n });\n });\n });\n const transaction = {\n contents,\n currency: reservation.payment.currency,\n value: reservation.total,\n content_type: 'product',\n };\n facebookPixel('track', 'Purchase', transaction);\n this.log.debug('FacebookPixelService revenue() track Purchase', transaction);\n });\n }\n\n private async withFacebookPixel(handler: (facebookPixel: FacebookPixel) => Promise | void) {\n const facebookPixel = await this.facebookPixel;\n if (facebookPixel) {\n if (handler instanceof Promise) {\n await handler(facebookPixel);\n } else {\n void handler(facebookPixel);\n }\n }\n }\n\n private async initFacebookPixel() {\n const config = await this.configService.getGaParams();\n const facebookPixelAccountCode = config.FacebookPixelAccountCode;\n if (facebookPixelAccountCode) {\n const googleAnalytics = FacebookPixelClientService.InitFacebookPixelScript(facebookPixelAccountCode);\n this.log.debug(`FacebookPixel is registered for '${facebookPixelAccountCode}' account`);\n return googleAnalytics;\n } else {\n return undefined;\n }\n }\n\n /*\n\n */\n private static InitFacebookPixelScript(accountCode: string) {\n const w = window as unknown as Window & { _fbq: FacebookPixel; fbq: FacebookPixel };\n if (!w.fbq) {\n // tslint:disable-next-line:only-arrow-functions\n const n: any = (w.fbq = function () {\n n.callMethod ? n.callMethod.apply(n, arguments) : n.queue.push(arguments);\n });\n if (!w._fbq) {\n w._fbq = n;\n }\n n.push = n;\n n.loaded = false;\n n.version = '2.0';\n n.queue = [];\n const node = document.createElement('script');\n node.async = true;\n node.src = 'https://connect.facebook.net/en_US/fbevents.js';\n const firstScript = document.getElementsByTagName('script')[0];\n (firstScript.parentNode as Node).insertBefore(node, firstScript);\n }\n w.fbq('init', accountCode);\n w.fbq('track', 'PageView');\n return w.fbq;\n }\n}\n\ntype FacebookPixel = (action: string, type: string, data?: any) => void;\n\ninterface FacebookPixelProductItem {\n id: string;\n quantity: number;\n item_price: number;\n}\n","import { Injectable } from '@angular/core';\nimport { LogService } from '@com/logging';\nimport { ApplicationStateService } from '../..';\nimport { ConfigService } from '../config';\nimport { HotelService } from '../hotel';\nimport { ReservationType } from '../payment';\nimport { TrackingClient } from './tracking-client.interface';\nimport { GoogleTagManger } from './google-tag-manager-client.service';\n\n@Injectable()\nexport class GoogleAnalyticsClientService implements TrackingClient {\n private googleAnalytics = this.initGoogleAnalytics();\n private page = '';\n\n constructor(\n private log: LogService,\n private configService: ConfigService,\n private hotelService: HotelService,\n private applicationstate: ApplicationStateService,\n ) {}\n\n async pageView(page: string) {\n await this.withGoogleAnalytics(() => {\n if (this.page !== page) {\n this.page = page;\n gtag('event', 'page_view', {\n page_location: this.page,\n });\n this.log.debug(`GoogleAnalyticsService pageView(${page})`);\n }\n });\n }\n\n async addToCart(category: string, entityType: string, name: string, count: number) {\n await this.withGoogleAnalytics(() => {\n gtag('event', 'add_to_cart', {\n currency: this.applicationstate.HotelCurrency,\n value: 0,\n items: [\n {\n item_name: name,\n quantity: count,\n },\n ],\n });\n this.log.debug(`GoogleAnalyticsService event(${category}, Add ${entityType}, ${name}, ${count})`);\n });\n }\n\n async removeFromCart(category: string, entityType: string, name: string, count: number) {\n await this.withGoogleAnalytics(() => {\n gtag('event', 'remove_from_cart', {\n currency: this.applicationstate.HotelCurrency,\n value: 0,\n items: [\n {\n item_name: name,\n quantity: count,\n },\n ],\n });\n this.log.debug(`GoogleAnalyticsService event(${category}, Remove ${entityType}, ${name}, ${count})`);\n });\n }\n\n async revenue(reservation: ReservationType) {\n if (reservation.rooms.length !== 0) {\n const hotelCode = reservation.rooms[0].hotelCode;\n\n await this.withGoogleAnalytics(async () => {\n await Promise.all(\n reservation.rooms.map(async (room) => {\n const { Name: roomName } = await this.hotelService.GetECommerceRoomInfo(\n room.hotelCode,\n room.roomCode,\n reservation.lang,\n );\n const { Code: rateName } = await this.hotelService.GetECommerceRateInfo(\n room.hotelCode,\n room.ratePlan,\n reservation.lang,\n );\n gtag('event', 'purchase', {\n currency: this.applicationstate.HotelCurrency,\n transaction_id: reservation.reservationId,\n items: [\n {\n affiliation: hotelCode,\n item_id: `${room.roomCode}-${room.ratePlan}`,\n item_name: `${roomName}/${rateName}/${room.hotelCode}`,\n item_category: 'Room',\n price: room.price.toFixed(2),\n quantity: 1,\n },\n ],\n });\n }),\n );\n this.log.debug('GoogleAnalyticsService revenue() ecommerce:send');\n\n await this.RevenueForExtraservices(reservation);\n });\n } else if (reservation.seats.length !== 0) {\n const hotelCode = this.applicationstate.CurrentHotelCode;\n\n await this.withGoogleAnalytics(async () => {\n gtag('event', 'purchase', {\n transaction_id: reservation.reservationId,\n items: [\n {\n affiliation: hotelCode,\n item_id: `${reservation.seats[0].seatrate}`,\n item_name: `${reservation.seats[0].seatCode}/${reservation.seats[0].seatrate}/${hotelCode}`,\n item_category: 'Seating',\n price: reservation.seats[0].total.toFixed(2),\n quantity: 1,\n },\n ],\n });\n this.log.debug('GoogleAnalyticsService revenue() ecommerce:send');\n });\n } else if (reservation.giftcards.length !== 0) {\n const hotelCode = this.applicationstate.CurrentHotelCode;\n\n await this.withGoogleAnalytics(async () => {\n gtag('event', 'purchase', {\n transaction_id: reservation.reservationId,\n items: [\n {\n item_id: `${reservation.giftcards[0].cardName}`,\n item_name: `${reservation.giftcards[0].cardName}/${hotelCode}`,\n affiliation: hotelCode,\n item_category: 'GiftCard',\n price: reservation.giftcards[0].total.toFixed(2),\n quantity: 1,\n },\n ],\n });\n this.log.debug('GoogleAnalyticsService revenue() ecommerce:send');\n });\n }\n }\n\n private async RevenueForExtraservices(reservation: ReservationType) {\n const hotelCode = reservation.rooms[0].hotelCode;\n\n await this.withGoogleAnalytics(async () => {\n await Promise.all(\n reservation.rooms.map(async (room) => {\n const { Name: roomName } = await this.hotelService.GetECommerceRoomInfo(\n room.hotelCode,\n room.roomCode,\n reservation.lang,\n );\n const { Code: rateName } = await this.hotelService.GetECommerceRateInfo(\n room.hotelCode,\n room.ratePlan,\n reservation.lang,\n );\n await Promise.all(\n room.services.map(async (service) => {\n const { Name: serviceName } = await this.hotelService.GetECommerceExtraServiceInfo(\n room.hotelCode,\n service.serviceCode,\n reservation.lang,\n );\n gtag('event', 'purchase', {\n transaction_id: reservation.reservationId,\n currency: this.applicationstate.HotelCurrency,\n value: service.price.toFixed(2),\n items: [\n {\n affiliation: hotelCode,\n item_id: `${room.roomCode}-${room.ratePlan}-${service.serviceCode}`,\n item_name: `${roomName}/${rateName}/${serviceName}/${room.hotelCode}`,\n item_category: 'ExtraService',\n price: service.price.toFixed(2),\n quantity: service.count,\n },\n ],\n });\n }),\n );\n }),\n );\n this.log.debug('GoogleAnalyticsService revenue for extra services() ecommerce:send');\n });\n }\n\n private async withGoogleAnalytics(handler: (googleAnalytics: Gtag.Gtag) => Promise | void) {\n const googleAnalytics = await this.googleAnalytics;\n if (googleAnalytics) {\n if (handler instanceof Promise) {\n await handler(googleAnalytics);\n } else {\n void handler(googleAnalytics);\n }\n }\n }\n\n private async initGoogleAnalytics() {\n const config = await this.configService.getGaParams();\n const googleAnalyticsAccountCode = config.GoogleAnalyticsAccountCode;\n if (googleAnalyticsAccountCode) {\n const googleAnalytics = GoogleAnalyticsClientService.InitGoogleAnalyticsScript(googleAnalyticsAccountCode);\n this.log.debug(`Google Analytics is registered for '${googleAnalyticsAccountCode}' account`);\n return googleAnalytics;\n } else {\n return undefined;\n }\n }\n\n private static InitGoogleAnalyticsScript(accountCode: string) {\n const w = window as unknown as Window & {\n GoogleAnalyticsObject: string;\n gtag: Gtag.Gtag;\n dataLayer: GoogleTagManger;\n };\n w.GoogleAnalyticsObject = 'gtag';\n w.dataLayer = w.dataLayer || [];\n w.gtag =\n w.gtag ||\n function () {\n // eslint-disable-next-line prefer-rest-params\n w.dataLayer.push(arguments);\n };\n const node = document.createElement('script');\n node.async = true;\n node.src = '//www.googletagmanager.com/gtag/js?id=' + accountCode;\n document.getElementsByTagName('head')[0].append(node);\n w.gtag('js', new Date());\n w.gtag('config', accountCode);\n return w.gtag;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LogService } from '@com/logging';\nimport { /* SpectraDate,*/ DateHelper } from 'src/app/helpers';\nimport { ConfigService } from '../config';\nimport { HotelService } from '../hotel';\nimport { ReservationType } from '../payment';\nimport { TrackingClient } from './tracking-client.interface';\n\n@Injectable()\nexport class GoogleHotelAdsClientService implements TrackingClient {\n constructor(private log: LogService, private hotelService: HotelService) {}\n\n // See for more info.: https://spectra-systems.visualstudio.com/Spectra/_wiki/wikis/Spectra.wiki?wikiVersion=GBwikiMaster&pagePath=%2FOnline%20Booking%2FFeatures%2FGoogle%20Hotel%20Ads\n async revenue(reservation: ReservationType) {\n if (reservation.rooms.length !== 0) {\n const hotelCode = reservation.rooms[0].hotelCode;\n const hotel = await this.hotelService.GetECommerceDepartmentInformation(hotelCode, reservation.lang);\n if (hotel.Settings.IsGoogleHotelAdsEnabled) {\n const GoogleHotelAdsId = hotel.Settings.GoogleHotelAdsId;\n if (GoogleHotelAdsId) {\n const axel = Math.random();\n const random = axel * 1000000000000000000;\n const arrivalDate = DateHelper.FromAspDate(reservation.rooms[0].arrival);\n const departureDate = DateHelper.FromAspDate(reservation.rooms[0].departure);\n\n const arrivalDateString = DateHelper.format(arrivalDate, 'YYYY-MM-DD'); // .toString();\n const departureDateString = DateHelper.format(departureDate, 'YYYY-MM-DD'); // departureDate.toString();\n\n // const arrivalDateTime = arrivalDate;.getTime();\n // const departureDateTime = departureDate.getTime();\n const lengthOfStay = DateHelper.daysBetween(departureDate, arrivalDate, 0); /* Math.ceil(\n Math.abs(departureDateTime - arrivalDateTime) / (1000 * 3600 * 24),\n );*/\n\n // const imageSourceString =\n // 'https://www.googletraveladservices.com/travel/clk/pagead/conversion/' +\n // GoogleHotelAdsId +\n // '/?label=HPA&guid=ON&script=0' +\n // `&ord=${random}&data=hct_partner_hotel_id%3D` +\n // GoogleHotelAdsId +\n // // + \"%3Bhct_base_price%3D$$base_price$$\" Required for CPA strategy, but as we cannot provide prices before taxes, this wont be possible.\n // `%3Bhct_total_price%3D${reservation.total}` +\n // `%3Bhct_currency_code%3D${reservation.payment.currency}` +\n // `%3Bhct_checkin_date%3D${arrivalDateString}` +\n // `%3Bhct_checkout_date%3D${departureDateString}` +\n // `%3Bhct_length_of_stay%3D${lengthOfStay}` +\n // '%3Bhct_date_format%3D' +\n // 'yy-mm-dd' +\n // // + \"%3Bhct_booking_xref%3D$$booking_xref$$\" this requires obfuscation or encryption to use. (Google)\n // '%3Bhct_ver%3D1.0.j';\n\n const imageSourceString =\n 'https://www.googletraveladservices.com/travel/clk/pagead/conversion/' +\n GoogleHotelAdsId +\n '/?label=HPA&guid=ON&script=0' +\n `&ord=${random}&data=hct_partner_hotel_id%3D` +\n GoogleHotelAdsId +\n // + \"%3Bhct_base_price%3D$$base_price$$\" Required for CPA strategy, but as we cannot provide prices before taxes, this wont be possible.\n `%3Bhct_total_price%3D${reservation.total}` +\n `%3Bhct_currency_code%3D${reservation.payment.currency}` +\n `%3Bhct_checkin_date%3D${arrivalDateString}` +\n `%3Bhct_checkout_date%3D${departureDateString}` +\n `%3Bhct_length_of_stay%3D${lengthOfStay}` +\n '%3Bhct_date_format%3D' +\n '%Y-%m-%d' +\n // + \"%3Bhct_booking_xref%3D$$booking_xref$$\" this requires obfuscation or encryption to use. (Google)\n '%3Bhct_ver%3D1.0.i';\n\n ConfigService.AddPixel(imageSourceString);\n this.log.debug(`GoogleHotelAdsService revenue() with url: ${imageSourceString}`);\n } else {\n // throw new Error(`Google Hotel Ads is is not set but usage is enabled`)\n this.log.info(`Google Hotel Ads for ${hotel.Code} is is not set but usage was enabled`);\n }\n } else {\n this.log.debug('GoogleHotelAdsService revenue() usage of Google Hotel Ads is disabled in BOW');\n }\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LogService } from '@com/logging';\nimport { ApplicationStateService } from '../../services';\nimport { ConfigService } from '../config';\nimport { HotelService } from '../hotel';\nimport { ReservationType } from '../payment';\nimport {\n TrackingClient,\n TrackingClientCartItem,\n TrackingClientPurchase,\n TrackingClientViewCart,\n TrackingClientViewItem,\n} from './tracking-client.interface';\nimport { GoogleAnalyticsPurchaseItem } from './Models/google-analytics-purchase.item';\nimport { GoogleAnalyticsAddToCartEvent } from './Events/google-analytics-add-to-cart.event';\nimport { GoogleAnalyticsPurchaseEvent } from './Events/google-analytics-purchase.event';\nimport { GoogleAnalyticsRemoveFromCartEvent } from './Events/google-analytics-remove-from-cart.event';\nimport { GoogleAnalyticsViewItemEvent } from './Events/google-analytics-view-item.event';\nimport { GoogleAnalyticsViewCartEvent } from './Events/google-analytics-view-cart.event';\nimport { GoogleAnalyticsBeginCheckoutEvent } from './Events/google-analytics-begin-checkout.event';\nimport { GoogleAnalyticsViewCartModel } from './Models/google-analytics-view-cart.model';\n\n@Injectable()\nexport class GoogleTagManagerClientService implements TrackingClient {\n private googleTagManager = this.initGoogleTagManager();\n\n constructor(\n private log: LogService,\n private configService: ConfigService,\n private hotelService: HotelService,\n private applicationstate: ApplicationStateService,\n ) {}\n async ecommerceAddToCart(item: TrackingClientCartItem): Promise {\n const cartItem: GoogleAnalyticsPurchaseItem = item;\n cartItem.affiliation = this.applicationstate.CurrentHotelCode;\n await this.withGoogleTagManger(async (dataLayer) => {\n const event: GoogleAnalyticsAddToCartEvent = {\n event: 'add_to_cart',\n ecommerce: {\n currency: this.applicationstate.HotelCurrency,\n value: (cartItem.price ?? 0) * (cartItem.quantity ?? 1),\n items: [cartItem],\n },\n };\n dataLayer.push(null);\n dataLayer.push(event);\n //this.log.debug('GoogleTagManagerService addItemToCart() push', { event });\n });\n }\n async ecommerceRemoveFromCart(item: TrackingClientCartItem): Promise {\n const cartItem: GoogleAnalyticsPurchaseItem = item;\n cartItem.affiliation = this.applicationstate.CurrentHotelCode;\n await this.withGoogleTagManger(async (dataLayer) => {\n const event: GoogleAnalyticsRemoveFromCartEvent = {\n event: 'remove_from_cart',\n ecommerce: {\n currency: this.applicationstate.HotelCurrency,\n value: (cartItem.price ?? 0) * (cartItem.quantity ?? 1),\n items: [cartItem],\n },\n };\n dataLayer.push(null);\n dataLayer.push(event);\n //this.log.debug('GoogleTagManagerService removeItemToCart() push', { event });\n });\n }\n async ecommercePurchase(purchase: TrackingClientPurchase): Promise {\n await this.withGoogleTagManger(async (dataLayer) => {\n const event: GoogleAnalyticsPurchaseEvent = {\n event: 'purchase',\n ecommerce: {\n currency: this.applicationstate.HotelCurrency,\n transaction_id: purchase.transaction_id,\n value: purchase.value,\n items:\n purchase.items?.map((item) => {\n const cartItem: GoogleAnalyticsPurchaseItem = item;\n cartItem.affiliation = this.applicationstate.CurrentHotelCode;\n return cartItem;\n }) ?? [],\n },\n };\n dataLayer.push(null);\n dataLayer.push(event);\n //this.log.debug('GoogleTagManagerService purchase() push', { event });\n });\n }\n async ecommerceViewItem(item: TrackingClientViewItem): Promise {\n const event: GoogleAnalyticsPurchaseItem = item;\n event.affiliation = this.applicationstate.CurrentHotelCode;\n await this.withGoogleTagManger(async (dataLayer) => {\n const event: GoogleAnalyticsViewItemEvent = {\n event: 'view_item',\n ecommerce: {\n currency: this.applicationstate.HotelCurrency,\n value: (item.price ?? 0) * (item.quantity ?? 1),\n items: [item],\n },\n };\n dataLayer.push(null);\n dataLayer.push(event);\n //this.log.debug('GoogleTagManagerService viewItem() push', { event });\n });\n }\n async ecommerceViewCart(item: TrackingClientViewCart): Promise {\n const model: GoogleAnalyticsViewCartModel = item;\n model.currency = this.applicationstate.HotelCurrency;\n await this.withGoogleTagManger(async (dataLayer) => {\n const event: GoogleAnalyticsViewCartEvent = {\n event: 'view_cart',\n ecommerce: model,\n };\n dataLayer.push(null);\n dataLayer.push(event);\n //this.log.debug('GoogleTagManagerService viewCart() push', { event });\n });\n }\n async ecommerceBeginCheckout(m: TrackingClientViewCart): Promise {\n await this.withGoogleTagManger(async (dataLayer) => {\n const event: GoogleAnalyticsBeginCheckoutEvent = {\n event: 'begin_checkout',\n ecommerce: {\n currency: this.applicationstate.HotelCurrency,\n value: m.value,\n items:\n m.items?.map((item) => {\n const cartItem: GoogleAnalyticsPurchaseItem = item;\n cartItem.affiliation = this.applicationstate.CurrentHotelCode;\n return cartItem;\n }) ?? [],\n },\n };\n dataLayer.push(null);\n dataLayer.push(event);\n //this.log.debug('GoogleTagManagerService beginCheckout() push', { event });\n });\n }\n /**\n * @deprecated Use `ecommerceAddToCart` instead\n * @param category\n * @param entityType\n * @param name\n * @param count\n */\n async addToCart(category: string, entityType: string, name: string, count: number): Promise {\n this.log.warn('using deprecated method addToCart()');\n await this.ecommerceAddToCart({\n item_name: name,\n quantity: count,\n item_category: entityType,\n });\n //this.log.debug('GoogleTagManagerService addToCart() push', { event });\n }\n /**\n * @deprecated Use `ecommerceRemoveFromCart` instead\n * @param category\n * @param entityType\n * @param name\n * @param count\n */\n async removeFromCart(category: string, entityType: string, name: string, count: number): Promise {\n this.log.warn('using deprecated method removeFromCart()');\n await this.withGoogleTagManger(async () => {\n await this.ecommerceRemoveFromCart({\n item_name: name,\n quantity: count,\n item_category: entityType,\n });\n //this.log.debug('GoogleTagManagerService removeFromCart() push', { event });\n });\n }\n async revenue(reservation: ReservationType) {\n if (reservation.rooms.length !== 0) {\n const hotelCode = reservation.rooms[0].hotelCode;\n await this.withGoogleTagManger(async () => {\n const products: GoogleAnalyticsPurchaseItem[] = [];\n await Promise.all(\n reservation.rooms.map(async (room) => {\n const { Name: roomName } = await this.hotelService.GetECommerceRoomInfo(\n room.hotelCode,\n room.roomCode,\n reservation.lang,\n );\n const { Code: rateName } = await this.hotelService.GetECommerceRateInfo(\n room.hotelCode,\n room.ratePlan,\n reservation.lang,\n );\n products.push({\n item_id: `${room.roomCode}-${room.ratePlan}`,\n item_name: `${roomName}/${rateName}`,\n item_category: 'Room',\n price: room.price,\n quantity: 1,\n });\n await Promise.all(\n room.services.map(async (service) => {\n const { Name: serviceName } = await this.hotelService.GetECommerceExtraServiceInfo(\n room.hotelCode,\n service.serviceCode,\n reservation.lang,\n );\n products.push({\n item_id: `${room.roomCode}-${rateName}-${service.serviceCode}`,\n item_name: `${roomName}/${rateName}/${serviceName}`,\n item_category: 'ExtraService',\n price: service.price,\n quantity: service.count,\n affiliation: hotelCode,\n });\n }),\n );\n }),\n );\n await this.ecommercePurchase({\n transaction_id: reservation.reservationId,\n value: reservation.total,\n items: products,\n });\n });\n } else if (reservation.seats.length !== 0) {\n const hotelCode = this.applicationstate.CurrentHotelCode;\n if (hotelCode !== undefined) {\n await this.withGoogleTagManger(async () => {\n const products: GoogleAnalyticsPurchaseItem[] = [];\n\n for (const seat of reservation.seats) {\n products.push({\n item_id: `${seat.seatCode}`,\n item_name: `${seat.seatCode}/${seat.seatrate}`,\n item_category: 'Seating',\n price: seat.total,\n quantity: seat.seatGuests.length,\n affiliation: hotelCode,\n });\n\n await this.ecommercePurchase({\n transaction_id: reservation.reservationId,\n value: reservation.total,\n items: products,\n });\n }\n });\n }\n } else if (reservation.giftcards.length !== 0) {\n const hotelCode = this.applicationstate.CurrentHotelCode;\n if (hotelCode !== undefined) {\n await this.withGoogleTagManger(async () => {\n const products: GoogleAnalyticsPurchaseItem[] = [];\n\n for (const card of reservation.giftcards) {\n products.push({\n item_id: `${card.cardName}`,\n item_name: `${card.cardName}`,\n item_category: 'Giftcard',\n price: card.total,\n quantity: 1,\n affiliation: hotelCode,\n });\n\n await this.ecommercePurchase({\n transaction_id: reservation.reservationId,\n value: reservation.total,\n items: products,\n });\n }\n });\n }\n }\n }\n\n private async withGoogleTagManger(handler: (googleTagManager: GoogleTagManger) => Promise | void) {\n const googleTagManager = await this.googleTagManager;\n if (googleTagManager) {\n if (handler instanceof Promise) {\n await handler(googleTagManager);\n } else {\n void handler(googleTagManager);\n }\n }\n }\n\n private async initGoogleTagManager() {\n const config = await this.configService.getGaParams();\n const googleTagManagerAccountCode = config.GoogleTagManagerAccountCode;\n if (googleTagManagerAccountCode) {\n const googleTagManager = GoogleTagManagerClientService.InitGoogleTagManagerScript(googleTagManagerAccountCode);\n //this.log.debug(`Google Tag Manger is registered for '${googleTagManagerAccountCode}' account`);\n return googleTagManager;\n } else {\n return undefined;\n }\n }\n /*\n\n */\n private static InitGoogleTagManagerScript(accountCode: string) {\n const w = window as unknown as Window & { dataLayer: GoogleTagManger };\n w.dataLayer = w.dataLayer || [];\n w.dataLayer.push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' });\n const firstScript = document.getElementsByTagName('script')[0];\n const node = document.createElement('script');\n node.async = true;\n node.src = `https://www.googletagmanager.com/gtm.js?id=${accountCode}`;\n (firstScript.parentNode as Node).insertBefore(node, firstScript);\n return w.dataLayer;\n }\n}\n\nexport type GoogleTagManger = { [key: string]: any } | null[];\n","export * from './tracking.service';\n","import { Injectable } from '@angular/core';\nimport { LogService } from '@com/logging';\nimport { ConfigService } from '../config';\nimport { ReservationType } from '../payment';\nimport { TrackingClient } from './tracking-client.interface';\n\n@Injectable()\nexport class SpectraAdsClientService implements TrackingClient {\n constructor(private log: LogService, private configService: ConfigService) {}\n\n async revenue(reservation: ReservationType) {\n const config = await this.configService.getGaParams();\n if (config.UseSpectraAdwordsScript) {\n const url = `//www.googleadservices.com/pagead/conversion/1011102417/?value=${reservation.total}&label=YnYbCI_moAcQ0eWQ4gM&guid=ON&script=0`;\n ConfigService.AddPixel(url);\n this.log.debug(`SpectraAdsService revenue() with url: ${url}`);\n } else {\n this.log.debug('SpectraAdsService revenue() usage of Spectra Adword script is disabled in BOW');\n }\n }\n}\n","import { NgModule, Optional, SkipSelf } from '@angular/core';\nimport { FacebookPixelClientService } from './facebook-pixel-client.service';\nimport { GoogleAnalyticsClientService } from './google-analytics-client.service';\nimport { GoogleHotelAdsClientService } from './google-hotel-ads-client.service';\nimport { GoogleTagManagerClientService } from './google-tag-manager-client.service';\nimport { SpectraAdsClientService } from './spectra-ads-client.service';\nimport { TrackingService } from './tracking.service';\n\n@NgModule({\n imports: [],\n declarations: [],\n providers: [\n GoogleTagManagerClientService,\n GoogleAnalyticsClientService,\n FacebookPixelClientService,\n GoogleHotelAdsClientService,\n SpectraAdsClientService,\n TrackingService,\n ],\n exports: [],\n})\nexport class TrackingModule {\n constructor(\n @Optional() @SkipSelf() parentModule: TrackingModule,\n trackingService: TrackingService,\n googleTagManagerClient: GoogleTagManagerClientService,\n googleAnalyticsClient: GoogleAnalyticsClientService,\n facebookPixelClient: FacebookPixelClientService,\n googleHotelAdsClient: GoogleHotelAdsClientService,\n spectraAdsClient: SpectraAdsClientService,\n ) {\n if (parentModule) {\n throw new Error('TrackingModule is already loaded. Import it in the CoreModule only');\n }\n trackingService.addClient(googleTagManagerClient);\n //trackingService.addClient(googleAnalyticsClient);\n //trackingService.addClient(facebookPixelClient);\n //trackingService.addClient(googleHotelAdsClient);\n trackingService.addClient(spectraAdsClient);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { GiftcardType, ReservationType, RoomType, SeatType } from '../payment';\nimport {\n TrackingClient,\n TrackingClientCartItem,\n TrackingClientPurchase,\n TrackingClientViewCart,\n} from './tracking-client.interface';\nimport { HotelService } from '../hotel';\nimport { GoogleAnalyticsPurchaseItem } from './Models/google-analytics-purchase.item';\n\n@Injectable()\nexport class TrackingService {\n private clients: TrackingClient[] = [];\n constructor(private hotelService: HotelService) {}\n addClient(client: TrackingClient) {\n this.clients.push(client);\n }\n\n async pageView(page: string) {\n this.clients.map(async (client) => {\n await client.pageView?.(page);\n });\n }\n async ecommerceAddToCart(item: TrackingClientCartItem): Promise {\n this.clients.map(async (client) => {\n await client.ecommerceAddToCart?.(item);\n });\n }\n async ecommerceRemoveFromCart(item: TrackingClientCartItem): Promise {\n this.clients.map(async (client) => {\n await client.ecommerceRemoveFromCart?.(item);\n });\n }\n async addToCart(category: string, entityType: string, name: string, count: number): Promise {\n this.clients.map(async (client) => {\n await client.addToCart?.(category, entityType, name, count);\n });\n }\n async removeFromCart(category: string, entityType: string, name: string, count: number) {\n this.clients.map(async (client) => {\n await client.removeFromCart?.(category, entityType, name, count);\n });\n }\n async ecommercePurchase(purchase: TrackingClientPurchase) {\n this.clients.map(async (client) => {\n await client.ecommercePurchase?.(purchase);\n });\n }\n async ecommerceViewItem(item: TrackingClientCartItem) {\n this.clients.map(async (client) => {\n await client.ecommerceViewItem?.(item);\n });\n }\n async ecommerceViewCart?(item: TrackingClientViewCart) {\n this.clients.map(async (client) => {\n await client.ecommerceViewCart?.(item);\n });\n }\n async ecommerceBeginCheckout(cart: TrackingClientViewCart) {\n this.clients.map(async (client) => {\n await client.ecommerceBeginCheckout?.(cart);\n });\n }\n private MapRoomsToPurchaseItems(rooms: RoomType[], lang: string): Promise {\n return Promise.all(\n rooms.map>(async (room) => {\n const { Name: roomName } = await this.hotelService.GetECommerceRoomInfo(room.hotelCode, room.roomCode, lang);\n const { Code: rateName } = await this.hotelService.GetECommerceRateInfo(room.hotelCode, room.ratePlan, lang);\n return {\n affiliation: room.hotelCode,\n item_id: `${room.roomCode}/${room.ratePlan}`,\n item_name: `${roomName}/${rateName}`,\n item_category: 'Room',\n price: room.price,\n quantity: 1,\n };\n }),\n );\n }\n private MapServicesToPurchaseItems(rooms: RoomType[], lang: string): Promise {\n return Promise.all(\n rooms.flatMap>((room) =>\n room.services.map(async (service) => {\n const { Name: serviceName } = await this.hotelService.GetECommerceExtraServiceInfo(\n room.hotelCode,\n service.serviceCode,\n lang,\n room.ratePlan,\n room.roomCode,\n );\n return {\n affiliation: room.hotelCode,\n item_id: `${room.roomCode}/${room.ratePlan}/${service.serviceCode}`,\n item_name: `${serviceName}`,\n item_category: 'Service',\n price: service.price,\n quantity: 1,\n };\n }),\n ),\n );\n }\n private MapSeatsToPurchaseItems(seats: SeatType[], lang: string): GoogleAnalyticsPurchaseItem[] {\n return seats.map((seat) => {\n return {\n item_id: `${seat.seatrate}`,\n item_name: `${seat.seatrate}`,\n item_category: 'Seating',\n price: seat.total,\n quantity: seat.seatGuests.length,\n };\n });\n }\n private MapGiftCardsToPurchaseItems(giftcards: GiftcardType[], lang: string): GoogleAnalyticsPurchaseItem[] {\n return giftcards.map((card) => {\n return {\n item_id: `${card.cardName}`,\n item_name: `${card.cardName}`,\n item_category: 'Giftcard',\n price: card.total,\n quantity: 1,\n };\n });\n }\n private async MapFromReservation(reservation: ReservationType): Promise {\n const transaction_id = reservation.reservationId;\n const value = reservation.total;\n let items: GoogleAnalyticsPurchaseItem[] = [];\n if (reservation.rooms.length !== 0) {\n const products = await this.MapRoomsToPurchaseItems(reservation.rooms, reservation.lang);\n const services = await this.MapServicesToPurchaseItems(reservation.rooms, reservation.lang);\n items = items.concat(products, services);\n }\n if (reservation.seats.length !== 0) {\n const products = this.MapSeatsToPurchaseItems(reservation.seats, reservation.lang);\n items = items.concat(products);\n }\n if (reservation.giftcards.length !== 0) {\n const products = this.MapGiftCardsToPurchaseItems(reservation.giftcards, reservation.lang);\n items = items.concat(products);\n }\n const model: TrackingClientPurchase = { transaction_id, value, items };\n return model;\n }\n async ecommerceBeginCheckoutFromReservation(reservation: ReservationType) {\n const model = await this.MapFromReservation(reservation);\n await this.ecommerceBeginCheckout(model);\n }\n async ecommercePurchaseFromReservation(reservation: ReservationType): Promise {\n const model = await this.MapFromReservation(reservation);\n await this.ecommercePurchase(model);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LogService } from '@com/logging';\nimport { Observable, Subject } from 'rxjs';\nimport { HotelCodeString } from '..';\nimport { Guid } from '../../helpers';\nimport { HotelType } from '../modules';\n\nexport enum OriginEnum {\n OnlineBooking = 1,\n PaymentLink = 2,\n GiftCard = 3,\n}\n\n@Injectable()\nexport class ApplicationStateService {\n get Origin(): OriginEnum {\n return this._origin;\n }\n set Origin(orig: OriginEnum) {\n this.log.debug(`AppStateService Origin = (${orig})`);\n this._origin = orig;\n this.subject.next(this._origin);\n }\n\n get ReservationId(): string {\n return this._reservationId;\n }\n set ReservationId(id: string) {\n this.log.debug(`AppStateService ReservationId = (${id})`);\n this._reservationId = id;\n }\n\n get DefaultMonthForCalendar(): number {\n return this.defaultMonthForCalendar;\n }\n\n get DepartureDate(): Date | null {\n return this.departureDate;\n }\n set DepartureDate(date: Date | null) {\n this.departureDate = date;\n }\n\n get PaymentlinkCallBack(): string {\n const res = localStorage.getItem('PLC');\n return res !== null ? res : 'false';\n }\n set PaymentlinkCallBack(PLC: string) {\n localStorage.setItem('PLC', PLC);\n }\n\n get ReservationGuid(): Guid {\n const resGuid = localStorage.getItem('ReservationGuid');\n return resGuid as Guid;\n }\n set ReservationGuid(reservationGuid: Guid) {\n localStorage.setItem('ReservationGuid', reservationGuid);\n }\n\n get ApplicationColor(): string {\n const color = localStorage.getItem('primaryDepartmentColor');\n return color !== null ? color : '';\n }\n set ApplicationColor(applicationColor: string) {\n localStorage.setItem('primaryDepartmentColor', applicationColor);\n }\n\n get ApplicationColorTextIcon(): string {\n const color = localStorage.getItem('primaryDepartmentColorTextIcon');\n return color !== null ? color : '';\n }\n set ApplicationColorTextIcon(applicationColorTextIcon: string) {\n localStorage.setItem('primaryDepartmentColorTextIcon', applicationColorTextIcon);\n }\n\n get ApplicationLogo(): string {\n const logo = localStorage.getItem('ApplicationLogo');\n return logo !== null ? logo : '';\n }\n set ApplicationLogo(applicationLogo: string) {\n localStorage.setItem('ApplicationLogo', applicationLogo);\n }\n\n get UseTableReservation(): boolean {\n return this.getBooleanValueFromLocalStorage('UseTableReservation');\n }\n set UseTableReservation(value: boolean) {\n localStorage.setItem('UseTableReservation', String(value));\n }\n\n get CustomLogoRedirectURL(): string {\n const code = localStorage.getItem('logoUrl') as string;\n return code == null ? '' : code;\n }\n set CustomLogoRedirectURL(logoUrl: string) {\n localStorage.setItem('logoUrl', logoUrl as string);\n }\n\n get InclueTableReservationBookingFlow(): boolean {\n return this.getBooleanValueFromLocalStorage('InclueTableReservationBookingFlow');\n }\n set InclueTableReservationBookingFlow(value: boolean) {\n localStorage.setItem('InclueTableReservationBookingFlow', String(value));\n }\n\n get InclueSeatingBookingFlow(): boolean {\n return this.getBooleanValueFromLocalStorage('InclueSeatingBookingFlow');\n }\n set InclueSeatingBookingFlow(value: boolean) {\n localStorage.setItem('InclueSeatingBookingFlow', String(value));\n }\n\n get UseSeatings(): boolean {\n return this.getBooleanValueFromLocalStorage('UseSeatings');\n }\n set UseSeatings(value: boolean) {\n localStorage.setItem('UseSeatings', String(value));\n }\n\n get DesignPackage(): string {\n const value = localStorage.getItem('DesignPackage') as string;\n return value;\n }\n set DesignPackage(designPackage: string) {\n localStorage.setItem('DesignPackage', designPackage);\n }\n\n get UseNavbarLinks(): boolean {\n return this.getBooleanValueFromLocalStorage('UseNavbarLinks');\n }\n set UseNavbarLinks(value: boolean) {\n localStorage.setItem('UseNavbarLinks', String(value));\n }\n\n get UseNetsEasy(): boolean {\n return this.getBooleanValueFromLocalStorage('UseNetsEasy');\n }\n set UseNetsEasy(value: boolean) {\n localStorage.setItem('UseNetsEasy', String(value));\n }\n\n get UseNetAxept(): boolean {\n return this.getBooleanValueFromLocalStorage('UseNetAxept');\n }\n set UseNetAxept(value: boolean) {\n localStorage.setItem('UseNetAxept', String(value));\n }\n\n get AcceptedCards(): string {\n const code = localStorage.getItem('AcceptedCards') as string;\n return code;\n }\n set AcceptedCards(animateBackground: string) {\n localStorage.setItem('AcceptedCards', animateBackground);\n }\n\n get UseSpectraOnlineBooking(): boolean {\n return this.getBooleanValueFromLocalStorage('UseSpectraOnlineBooking');\n }\n set UseSpectraOnlineBooking(value: boolean) {\n localStorage.setItem('UseSpectraOnlineBooking', String(value));\n }\n\n get UseConferenceModule(): boolean {\n return this.getBooleanValueFromLocalStorage('UseConferenceModule');\n }\n set UseConferenceModule(value: boolean) {\n localStorage.setItem('UseConferenceModule', String(value));\n }\n\n get UseGiftcardFrom(): boolean {\n return this.getBooleanValueFromLocalStorage('UseGiftcardFrom');\n }\n set UseGiftcardFrom(value: boolean) {\n localStorage.setItem('UseGiftcardFrom', String(value));\n }\n\n get UseGiftcardTo(): boolean {\n return this.getBooleanValueFromLocalStorage('UseGiftcardTo');\n }\n set UseGiftcardTo(value: boolean) {\n localStorage.setItem('UseGiftcardTo', String(value));\n }\n\n get UseGiftcardMessage(): boolean {\n return this.getBooleanValueFromLocalStorage('UseGiftcardMessage');\n }\n set UseGiftcardMessage(value: boolean) {\n localStorage.setItem('UseGiftcardMessage', String(value));\n }\n\n get UseGiftcard(): boolean {\n return this.getBooleanValueFromLocalStorage('UseGiftcard');\n }\n set UseGiftcard(value: boolean) {\n localStorage.setItem('UseGiftcard', String(value));\n }\n\n get PayWithGiftcard(): boolean {\n return this.getBooleanValueFromLocalStorage('PayWithGiftcard');\n }\n set PayWithGiftcard(value: boolean) {\n localStorage.setItem('PayWithGiftcard', String(value));\n }\n\n get ApplicationTextColor(): string {\n const color = localStorage.getItem('primaryTextColor');\n return color !== null ? color : '';\n }\n set ApplicationTextColor(applicationTextColor: string) {\n localStorage.setItem('primaryTextColor', applicationTextColor);\n }\n\n get CurrentHotelCode(): HotelCodeString {\n const code = localStorage.getItem('hotelcode') as HotelCodeString;\n return code;\n }\n set CurrentHotelCode(currentHotelCode: HotelCodeString) {\n localStorage.setItem('hotelcode', currentHotelCode as HotelCodeString);\n }\n\n get CustomReceiptRedirectURL(): string {\n const code = localStorage.getItem('redirectUrl') as string;\n return code == null ? '' : code;\n }\n set CustomReceiptRedirectURL(redirectUrl: string) {\n localStorage.setItem('redirectUrl', redirectUrl as string);\n }\n\n get AnimateBackground(): string {\n const code = localStorage.getItem('AnimateBackground') as string;\n return code;\n }\n set AnimateBackground(animateBackground: string) {\n localStorage.setItem('AnimateBackground', animateBackground);\n }\n\n get UseExtraServices(): boolean {\n return this.getBooleanValueFromLocalStorage('UseExtraServices');\n }\n set UseExtraServices(value: boolean) {\n localStorage.setItem('UseExtraServices', String(value));\n }\n\n get HotelCurrency(): string {\n const code = localStorage.getItem('HotelCurrency') as string;\n return code;\n }\n set HotelCurrency(value: string) {\n localStorage.setItem('HotelCurrency', value);\n }\n\n get NetsPaymentEnabled(): boolean {\n return this.getBooleanValueFromLocalStorage('NetsEasyPaymentEnabled');\n }\n set NetsPaymentEnabled(value: boolean) {\n localStorage.setItem('NetsEasyPaymentEnabled', value.toString());\n }\n\n get MaxAQC(): string {\n const value = localStorage.getItem('MaxAQC') as string;\n return value;\n }\n set MaxAQC(maxAQC: string) {\n localStorage.setItem('MaxAQC', maxAQC);\n }\n\n get BackGroundimage(): string {\n const value = localStorage.getItem('BackGroundimage') as string;\n return value === 'null' ? 'no-image' : value;\n }\n set BackGroundimage(backGroundimage: string) {\n localStorage.setItem('BackGroundimage', backGroundimage);\n }\n\n get ApplicationFont(): string {\n const value = localStorage.getItem('ApplicationFont') as string;\n return value;\n }\n set ApplicationFont(applicationFont: string) {\n localStorage.setItem('ApplicationFont', applicationFont);\n }\n\n get HotelLabel(): string {\n const value = localStorage.getItem('HotelLabel') as string;\n return value;\n }\n set HotelLabel(hotelLabel: string) {\n localStorage.setItem('HotelLabel', hotelLabel);\n }\n\n get RoomLabel(): string {\n const value = localStorage.getItem('RoomLabel') as string;\n return value;\n }\n set RoomLabel(roomLabel: string) {\n localStorage.setItem('RoomLabel', roomLabel);\n }\n\n get MoreRoomLabel(): string {\n const value = localStorage.getItem('MoreRoomLabel') as string;\n return value;\n }\n set MoreRoomLabel(moreRoomLabel: string) {\n localStorage.setItem('MoreRoomLabel', moreRoomLabel);\n }\n\n get ChooseRoomLabel(): string {\n const value = localStorage.getItem('ChooseRoomLabel') as string;\n return value;\n }\n set ChooseRoomLabel(chooseRoomLabel: string) {\n localStorage.setItem('ChooseRoomLabel', chooseRoomLabel);\n }\n\n get RoomTypeLabel(): string {\n const value = localStorage.getItem('RoomTypeLabel') as string;\n return value;\n }\n set RoomTypeLabel(roomTypeLabel: string) {\n localStorage.setItem('RoomTypeLabel', roomTypeLabel);\n }\n\n get RoomsLabel(): string {\n const value = localStorage.getItem('RoomsLabel') as string;\n return value;\n }\n set RoomsLabel(roomsLabel: string) {\n localStorage.setItem('RoomsLabel', roomsLabel);\n }\n\n get GuestInRoomLabel(): string {\n const value = localStorage.getItem('GuestInRoomLabel') as string;\n return value;\n }\n set GuestInRoomLabel(guestInRoomLabel: string) {\n localStorage.setItem('GuestInRoomLabel', guestInRoomLabel);\n }\n\n get ChooseYourRoom(): string {\n const value = localStorage.getItem('ChooseYourRoom') as string;\n return value;\n }\n set ChooseYourRoom(chooseYourRoom: string) {\n localStorage.setItem('ChooseYourRoom', chooseYourRoom);\n }\n\n get EventLabel(): string {\n const value = localStorage.getItem('EventLabel') as string;\n return value;\n }\n set EventLabel(eventLabel: string) {\n localStorage.setItem('EventLabel', eventLabel);\n }\n\n get BookingFlow(): string {\n const code = localStorage.getItem('bookingFlow');\n return code !== null ? code : '1';\n }\n set BookingFlow(currentBookingFlow: string) {\n localStorage.setItem('bookingFlow', currentBookingFlow);\n }\n\n get ReturnFromOnlySeating(): string {\n const code = localStorage.getItem('ReturnFromOnlySeating');\n return code !== null ? code : 'false';\n }\n set ReturnFromOnlySeating(onlySeating: string) {\n localStorage.setItem('ReturnFromOnlySeating', onlySeating);\n }\n\n get CalendarDateChange(): Observable {\n return this.calendarDateChange;\n }\n\n set CalendarDateChange(date: Observable) {\n this.calendarDateChange = date;\n }\n\n get HotelBasketInfo(): HotelType | undefined {\n return this._hotelBasketInfo;\n }\n set HotelBasketInfo(data: HotelType | undefined) {\n this._hotelBasketInfo = data;\n }\n\n get MandatoryEmail(): boolean {\n return this.getBooleanValueFromLocalStorage('MandatoryEmail');\n }\n set MandatoryEmail(value: boolean) {\n localStorage.setItem('MandatoryEmail', String(value));\n }\n\n get MandatoryPhone(): boolean {\n return this.getBooleanValueFromLocalStorage('MandatoryPhone');\n }\n set MandatoryPhone(value: boolean) {\n localStorage.setItem('MandatoryPhone', String(value));\n }\n\n get HeaderInjectText(): string {\n const value = localStorage.getItem('HeaderInjectText') as string;\n return value;\n }\n set HeaderInjectText(value: string) {\n localStorage.setItem('HeaderInjectText', String(value));\n }\n\n get UsePromotion(): boolean {\n return this.getBooleanValueFromLocalStorage('UsePromotion');\n }\n set UsePromotion(value: boolean) {\n localStorage.setItem('UsePromotion', String(value));\n }\n\n get GiftcardPayment(): string {\n return this._paymentUrl;\n }\n set GiftcardPayment(value: string) {\n this._paymentUrl = value;\n }\n\n get RemoveCheckoutButton(): boolean {\n return this.removeCheckoutButton;\n }\n set RemoveCheckoutButton(value: boolean) {\n this.removeCheckoutButton = value;\n }\n\n get UseSpectraOnlineBookingMenuPoint(): boolean {\n const valueName = this.NavBarOptionsActivated() ? 'UseSpectraOnlineBookingMenuPoint' : 'UseSpectraOnlineBooking';\n return this.getBooleanValueFromLocalStorage(valueName);\n }\n set UseSpectraOnlineBookingMenuPoint(value: boolean) {\n localStorage.setItem('UseSpectraOnlineBookingMenuPoint', String(value));\n }\n\n get UseSeatingMenuPoint(): boolean {\n const valueName = this.NavBarOptionsActivated() ? 'UseSeatingMenuPoint' : 'UseSeating';\n return this.getBooleanValueFromLocalStorage(valueName);\n }\n set UseSeatingMenuPoint(value: boolean) {\n localStorage.setItem('UseSeatingMenuPoint', String(value));\n }\n\n get UseTableReservationMenuPoint(): boolean {\n const valueName = this.NavBarOptionsActivated() ? 'UseTableReservationMenuPoint' : 'UseTableReservation';\n return this.getBooleanValueFromLocalStorage(valueName);\n }\n set UseTableReservationMenuPoint(value: boolean) {\n localStorage.setItem('UseTableReservationMenuPoint', String(value));\n }\n\n get UseGiftcardMenuPoint(): boolean {\n const valueName = this.NavBarOptionsActivated() ? 'UseGiftcardMenuPoint' : 'UseGiftcard';\n return this.getBooleanValueFromLocalStorage(valueName);\n }\n set UseGiftcardMenuPoint(value: boolean) {\n localStorage.setItem('UseGiftcardMenuPoint', String(value));\n }\n\n get UseConferenceBookingMenuPoint(): boolean {\n const valueName = this.NavBarOptionsActivated() ? 'UseConferenceBookingMenuPoint' : 'UseConferenceBooking';\n return this.getBooleanValueFromLocalStorage(valueName);\n }\n set UseConferenceBookingMenuPoint(value: boolean) {\n localStorage.setItem('UseConferenceBookingMenuPoint', String(value));\n }\n\n private NavBarOptionsActivated(): boolean {\n const useNavbarLinks = this.UseNavbarLinks;\n if (!useNavbarLinks) {\n // If NavBar links are disabled, no need to evaluate the rest, since they won't be used.\n return false;\n }\n\n const useSpectraOnlineBookingMenuPointValue = this.getBooleanValueFromLocalStorage(\n 'UseSpectraOnlineBookingMenuPoint',\n );\n const useSeatingMenuPointValue = this.getBooleanValueFromLocalStorage('UseSeatingMenuPoint');\n const useTableReservationMenuPointValue = this.getBooleanValueFromLocalStorage('UseTableReservationMenuPoint');\n const useGiftcardMenuPointValue = this.getBooleanValueFromLocalStorage('UseGiftcardMenuPoint');\n const useConferenceBookingMenuPointValue = this.getBooleanValueFromLocalStorage('UseConferenceBookingMenuPoint');\n\n const allMenuPointsDisabled =\n !useSpectraOnlineBookingMenuPointValue &&\n !useSeatingMenuPointValue &&\n !useTableReservationMenuPointValue &&\n !useGiftcardMenuPointValue &&\n !useConferenceBookingMenuPointValue;\n\n // If UseNavbarLinks is enabled AND all MenuPoint options are false - this indicates that these options were never set by the user, and should not be used.\n return !allMenuPointsDisabled;\n }\n\n private getBooleanValueFromLocalStorage(key: string): boolean {\n return localStorage.getItem(key) !== 'false';\n }\n\n private subject = new Subject();\n private _origin: OriginEnum = OriginEnum.OnlineBooking;\n private _reservationId = '';\n private _hotelBasketInfo: HotelType | undefined;\n private departureDate!: Date | null;\n private defaultMonthForCalendar = 2;\n private removeCheckoutButton = false;\n\n private _paymentUrl = '';\n\n calendarDateChange = new Observable();\n\n constructor(private log: LogService) {}\n\n getOriginObservable(): Observable {\n return this.subject.asObservable();\n }\n\n stopScrolling(stop: boolean) {\n if (stop) {\n document.body.classList.add('disableScroll');\n } else {\n document.body.classList.remove('disableScroll');\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LogService } from '@com/logging';\nimport { BehaviorSubject } from 'rxjs';\nimport { DateHelper, RoomGuests, StorageClient, UTCDateString } from 'src/app/helpers';\nimport { AQC } from 'src/app/core';\nimport { GiftCardConfiguration } from '../../pages/giftcard/products/giftcard.component';\nimport { HotelCodeString, RateCodeString, RoomCodeString } from '../modules';\nimport { BookingExtraServiceModel } from '../modules/hotel/data-hotel.service';\nimport { SeatProfileType } from '../modules/payment';\n\n@Injectable()\nexport class BasketService {\n get basketBadgeNumberGet(): string {\n const basketBadgeNumber = localStorage.getItem('basketBadgeNumber');\n return basketBadgeNumber !== null ? basketBadgeNumber : '0';\n }\n set basketBadgeNumberSet(number: string) {\n localStorage.setItem('basketBadgeNumber', number);\n }\n\n private basket = new StorageClient(sessionStorage, 'Basket', null as BasketObj | null);\n basket$ = new BehaviorSubject(this.getBasketObj());\n hotelCode$ = new BehaviorSubject(null as HotelCodeString | null);\n\n basketBadgeNumber = '';\n\n constructor(private log: LogService) {\n this.basket$.subscribe((b) => {\n this.basket.set(b ? BasketService.PackBasket(b) : null);\n this.setHotelCode(b ? b.params.hotelCode : this.hotelCode$.value);\n });\n }\n\n getBasketObj(): Basket | null {\n const basket = this.basket.get();\n\n if (basket) {\n return BasketService.UnpackBasket(basket);\n }\n\n return null;\n }\n\n setHotelCode(hotelCode: HotelCodeString | null) {\n if (this.hotelCode$.value !== hotelCode) {\n this.hotelCode$.next(hotelCode);\n }\n }\n\n create(params: SearchParams) {\n const basket: Basket = { params, bookings: [] };\n this.basket$.next(basket);\n return basket;\n }\n\n set(basket: Basket) {\n this.basket$.next(basket);\n this.calculateBadgeNumber();\n }\n\n get() {\n return this.basket$.getValue();\n }\n\n clear() {\n this.log.debug('BasketService clear()');\n this.basket$.next(null);\n }\n\n showOrHideBasket() {\n const box = document.getElementById('basketBox') as HTMLElement;\n if (box !== null && !box.classList.contains('hideMessage')) {\n box.classList.add('hideMessage');\n } else {\n if (box !== null && box !== undefined) {\n box.classList.remove('hideMessage');\n }\n }\n }\n\n hideBasket() {\n const box = document.getElementById('basketBox') as HTMLElement;\n if (box !== null && box.classList.contains('hideMessage')) {\n box.classList.remove('hideMessage');\n }\n }\n\n calculateBadgeNumber() {\n const basket = this.basket.get();\n if (basket !== null) {\n let count = basket.bookings.length;\n for (const item of basket.bookings) {\n if (item.AddOns !== undefined) {\n count = count + item.AddOns.length;\n }\n if (item.Seatings !== undefined) {\n if (count === 1 && item.RateCode === ('' as RateCodeString) && item.RoomCode === ('' as RoomCodeString)) {\n count = item.Seatings.length;\n } else {\n count = count + item.Seatings.length;\n }\n }\n if (item.TableSeatings !== undefined) {\n if (count === 1 && item.RateCode === ('' as RateCodeString) && item.RoomCode === ('' as RoomCodeString)) {\n count = item.TableSeatings.length;\n } else {\n count = count + item.TableSeatings.length;\n }\n }\n if (item.Giftcards !== undefined) {\n if (count === 1 && item.RateCode === ('' as RateCodeString) && item.RoomCode === ('' as RoomCodeString)) {\n count = item.Giftcards.length;\n } else {\n count = count + item.Giftcards.length;\n }\n }\n this.basketBadgeNumberSet = count.toString();\n }\n } else {\n this.basketBadgeNumberSet = '0';\n }\n }\n\n static UnpackBasket(basket: BasketObj): Basket | null {\n try {\n return {\n params: BasketService.ParseQueryParams(basket.params),\n bookings: basket.bookings,\n };\n } catch (err) {\n return null;\n }\n }\n\n static PackBasket(basket: Basket): BasketObj {\n return {\n params: BasketService.BuildQueryParams(basket.params),\n bookings: BasketService.BuildBookings(basket.bookings),\n };\n }\n\n static ParseBookings(bookings: Booking[]): Booking[] {\n return bookings.map((booking) => {\n return booking;\n });\n }\n\n static ParseQueryParams(queryParams: BasketQueryParams) {\n const searchParams: SearchParams = {\n single: queryParams.Single ? this.ParseSingle(queryParams.Single) : false,\n hotelCode: this.ParseHotelCode(queryParams.HotelCode),\n arrival: DateHelper.FromUtcDate(queryParams.ArrivalDate),\n stay: this.ParseStay(queryParams.LengthOfStay),\n rooms: this.ParseRooms(queryParams.RoomCounts),\n ArrivalDate: 0,\n ArrivalFullYear: 0,\n ArrivalMonthName: '',\n DepartueDate: 0,\n DepartueFullYear: 0,\n DepartueMonthName: '',\n BookingFlow: queryParams.BookingFlow,\n RateCode: queryParams.RateCode,\n ConferenceRoomCode: '',\n };\n return searchParams;\n }\n\n static BuildBookings(bookings: Booking[]) {\n return bookings.map((booking) => {\n if (booking.AddOns) {\n booking.AddOns = booking.AddOns.map((addOn) => {\n addOn.Dates = addOn.Dates.map((date) => {\n // @ts-ignore - hack to store date in localstorage\n date.Date = date.Date.toString();\n return date;\n });\n return addOn;\n });\n }\n return booking;\n });\n }\n\n static BuildQueryParams(searchParams: SearchParams) {\n const queryParams: BasketQueryParams = {\n HotelCode: searchParams.hotelCode,\n ArrivalDate: DateHelper.format(searchParams.arrival, 'YYYY-MM-DD') as UTCDateString,\n LengthOfStay: searchParams.stay.toString(),\n RoomCounts: this.StringifyRooms(searchParams.rooms),\n Single: searchParams.single ? 'true' : undefined,\n BookingFlow: searchParams.BookingFlow,\n RateCode: searchParams.RateCode,\n };\n return queryParams;\n }\n\n static ParseSingle(single: string) {\n return single === 'true';\n }\n\n static ParseHotelCode(hotelCode: HotelCodeString) {\n return hotelCode;\n }\n\n static ParseStay(stay: string) {\n const res = +stay || 1;\n return res;\n }\n\n static ParseRooms(rooms: string) {\n return rooms.split(':').map((guests) => new RoomGuests(guests.split(',').map((x) => +x)));\n }\n\n private static StringifyRooms(rooms: RoomGuests[]) {\n return rooms.map((g) => g.toString()).join(':');\n }\n}\n\nexport interface BasketObj {\n params: BasketQueryParams;\n bookings: Booking[];\n}\n\nexport interface Basket {\n params: SearchParams;\n bookings: Booking[];\n}\n\nexport interface BookingSeating {\n Id: string;\n Name: string;\n SinglePrice: number;\n TicketTotal: number | undefined;\n Date: Date;\n SeatCode: string;\n Time: string | null;\n SeatRate: string;\n SeatingPlanName: string;\n SeatGuest: SeatProfileType[];\n VareNr: string;\n day: string;\n month: string;\n year: string;\n seatId: number;\n type: BookingSeatingType;\n returnUrl?: {\n url?: string;\n queryParams?: object;\n };\n AQC: AQC;\n}\n\ntype BookingSeatingType = 'SeatingBooking' | 'SeatingStandalone';\n\nexport interface BookingTable {\n Id: string;\n Date: Date;\n HotelCode: string;\n Time: string;\n translatedMonth: string;\n Total: number;\n SeatCode: string;\n SeatGuest: SeatProfileType[];\n SeatRate: string;\n Name: string;\n Day: number;\n Year: number;\n SeatingPlanName: string;\n}\n\nexport interface Booking {\n RoomName: string;\n RateName: string;\n RoomCode: RoomCodeString;\n RateCode: RateCodeString;\n RateDescription: string;\n HasPromotionForCustomer?: boolean;\n Price: number | undefined;\n OriginalPrice: number | undefined;\n AddOns?: BookingExtraServiceModel[];\n Seatings?: BookingSeating[];\n TableSeatings?: BookingTable[];\n Giftcards?: BookingGiftcard[];\n ConferenceRoomCode: string;\n ConferenceRateCode: string;\n}\n\nexport interface BookingGiftcard {\n Name: string;\n Price: number;\n TotalPrice: number;\n Id: number;\n Count: number;\n CustomPrice: boolean;\n GuestInformation: GiftCardGuestInformation;\n GiftConfiguration: GiftCardConfiguration;\n}\n\nexport interface GiftCardGuestInformation {\n FromName: string;\n ToName: string;\n GiftcardMessage: string;\n}\n\nexport interface BasketQueryParams {\n Single?: string;\n HotelCode: HotelCodeString;\n ArrivalDate: UTCDateString;\n LengthOfStay: string;\n RoomCounts: string;\n BookingFlow: number;\n RateCode?: string;\n ConferenceRoomCode?: string;\n}\n\nexport interface SearchParams {\n single: boolean;\n hotelCode: HotelCodeString;\n arrival: Date;\n stay: number;\n rooms: RoomGuests[];\n ArrivalDate: number;\n ArrivalMonthName: string;\n ArrivalFullYear: number;\n DepartueDate: number;\n DepartueMonthName: string;\n DepartueFullYear: number;\n BookingFlow: number;\n RateCode: string | undefined;\n ConferenceRoomCode: string | undefined;\n}\n","import { Injectable } from '@angular/core';\nimport { LogService } from '@com/logging';\nimport { Guid, StorageClient } from 'src/app/helpers';\nimport { Customer, CustomerInfo, HotelType } from '../modules';\nimport { PromoCodeString } from '../modules/config';\nimport { GiftcardReservationPayment } from '../modules/hotel/data-hotel.service';\nimport { Locale } from '../modules/locale';\nimport {\n BookingInformation,\n BookingInformationGiftcard,\n PaymentFlowEnum,\n PaymentModel,\n ReservationService,\n ReservationType,\n} from '../modules/payment';\nimport { ApplicationStateService } from './application-state.service';\nimport { Basket, BasketObj } from './basket.service';\n\n@Injectable()\nexport class BookingService {\n private reciept = new StorageClient(sessionStorage, 'Reciept', null as Reciept | null);\n private reservation = new StorageClient(sessionStorage, 'Reservation', null as ReservationType | null);\n private usedGiftcard = new StorageClient(sessionStorage, 'usedGiftcard', null as GiftcardReservationPayment | null);\n bookingInformation = new StorageClient(sessionStorage, 'bookingInformation', null as BookingInformation | null);\n giftcardEasyInfo = new StorageClient(sessionStorage, 'giftcardEasyInfo', null as PaymentModel | null);\n\n constructor(\n private log: LogService,\n private reservationService: ReservationService,\n private applicationState: ApplicationStateService,\n ) {}\n\n getReciept() {\n const reciept = this.reciept.get();\n if (!reciept) {\n throw new Error(`Reciept must be defined`);\n }\n return reciept;\n }\n\n getReservationOrFail() {\n const reservation = this.reservation.get();\n if (!reservation) {\n throw new Error(`Reservation must be defined`);\n }\n return reservation;\n }\n\n async createReservation(\n locale: Locale,\n hotel: HotelType,\n promocode: PromoCodeString | undefined,\n customer: Customer,\n information: BookingInformation,\n needSubscribe: boolean,\n useCancelationInsurance: boolean,\n comment: string,\n isAgent: boolean,\n giftcardPayment: number,\n ) {\n this.log.debug(`BookingService createReservation(${locale}, ${hotel.Code}, ${promocode}, ${customer.Info.Email})`);\n this.reciept.set(null);\n const reservation = await this.reservationService.createReservation(\n locale,\n hotel,\n promocode,\n customer,\n information,\n needSubscribe,\n useCancelationInsurance,\n comment,\n isAgent,\n giftcardPayment,\n );\n this.reservation.set(reservation);\n return reservation;\n }\n\n updateSessionReservation(reservation: ReservationType) {\n this.reservation.set(reservation);\n }\n\n updateSessionGiftcard(giftcardInfo: GiftcardReservationPayment | null) {\n this.usedGiftcard.set(giftcardInfo);\n }\n\n getSessionGiftcard() {\n return this.usedGiftcard.get();\n }\n\n async getReservation(reservationId: string, locale: Locale) {\n const reservation = await this.reservationService.GetReservation(reservationId, locale);\n this.reservation.set(reservation);\n\n return reservation;\n }\n\n async CancelReservation(reservationId: string) {\n await this.reservationService.CancelReservation(reservationId);\n }\n\n async completePayment(reservation: ReservationType) {\n this.log.debug(`BookingService payment complete()`, reservation);\n const reciept: Reciept = {\n reservation,\n };\n this.reciept.set(reciept);\n this.reservation.set(null);\n return reciept;\n }\n\n async createGiftcardReservation(giftcards: BookingInformationGiftcard[] | undefined, customer: CustomerInfo) {\n if (giftcards && this.applicationState.UseNetAxept === true) {\n const res = await this.reservationService.PlaceGiftcardOrderAxept(giftcards, customer);\n return res.PaymentUrl;\n }\n\n if (giftcards && this.applicationState.UseNetsEasy === true) {\n const res = await this.reservationService.PlaceGiftcardOrderEasy(giftcards, customer);\n this.giftcardEasyInfo.set(res);\n return res;\n }\n\n this.log.fatal(\n 'Trying to buy giftcard without any paymentplatform! Please specify a payment platform in Spectra to use Giftcard module!',\n );\n\n return undefined;\n }\n\n async RegisterGiftcardPayment(orderId: number, transactionId: Guid) {\n await this.reservationService.RegisterGiftcardPayment(orderId, transactionId);\n }\n\n async getGiftcardInformation(giftCardCode: string) {\n return await this.reservationService.GetGiftcardInformation(giftCardCode);\n }\n\n cancelPayment() {\n this.log.debug(`BookingService payment cancelPayment()`);\n this.reservation.set(null);\n }\n\n failPayment() {\n this.log.debug(`BookingService payment failPayment()`);\n this.reservation.set(null);\n }\n\n buildReservationTypeForGiftcard(basket: Basket, paidAmount: number, orderId: string) {\n return this.reservationService.BuildReservationTypeForGiftcard(basket, paidAmount, orderId);\n }\n\n async registerPayment(hotelCode: string, resGuid: Guid, paymentId: Guid, paymentFlow: PaymentFlowEnum) {\n this.log.debug(`Register payment on resGuid: ` + resGuid.toString());\n await this.reservationService.RegisterPayment(hotelCode, resGuid, paymentId, paymentFlow);\n }\n\n async sendNotification(\n reservation: BookingInformation | null,\n langCode: string,\n paymentEnabled = true,\n prepare = false,\n ) {\n this.log.debug(`Send notification for: `, reservation);\n const res = this.reservation.get();\n if (reservation && res) {\n await this.reservationService.SendNotification(\n reservation,\n res.resGuid!,\n langCode,\n paymentEnabled ? res.PaymentFlowToUse : 1,\n prepare,\n );\n }\n\n if (!prepare) {\n this.bookingInformation.set(null);\n }\n }\n}\n\ninterface RecieptBase {\n id: string;\n customer: Customer;\n bookingCode: string;\n reservation: ReservationType;\n PaymentFlowToUse: PaymentFlowEnum;\n PaymentDue: number;\n}\n\nexport interface RecieptObj extends RecieptBase {\n basketObj: BasketObj;\n}\n\nexport interface Reciept {\n reservation: ReservationType;\n}\n","export * from './basket.service';\nexport * from './booking.service';\nexport * from './application-state.service';\nexport * from './server-log-client.service';\nexport * from './loader';\n","import { Injectable } from '@angular/core';\nimport { first } from 'rxjs/operators';\nimport { Loader as BaseLoader, LoaderMessage } from 'src/app/modules/loader';\nimport { Messages } from 'src/i18n';\nimport { lastValueFrom } from 'rxjs';\nimport { LocaleService } from '../modules';\n\n@Injectable()\nexport class Loader {\n constructor(private loader: BaseLoader, private ls: LocaleService) {}\n\n async using(action: (loader: LoaderMessage) => Promise, msg?: keyof Messages, transparent = true) {\n return await this.loader.using(\n async (loader) => {\n loader.msg = msg ? (await lastValueFrom(this.ls.translations$.pipe(first())))[msg] : undefined;\n return await action(loader);\n },\n undefined,\n transparent,\n );\n }\n\n hideAll() {\n this.loader.hideAll();\n }\n}\n","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { LogClient, LogEntry, LogLevel } from '@com/logging';\nimport dayjs from 'dayjs';\nimport { ActionStack, GuidHelper, StorageClient } from 'src/app/helpers';\nimport { lastValueFrom } from 'rxjs';\nimport { ConfigService } from '../modules';\n\nexport enum SpectraLogLevel {\n Debug = 2048,\n Trace = 1024,\n Info = 256,\n Notice = 128,\n Warn = 64,\n Error = 16,\n Fatal = 4,\n}\n\n@Injectable()\nexport class ServerLogClientService implements LogClient {\n private static ClientLogSize = 200;\n private sessionId = new StorageClient(sessionStorage, 'Log-session-id', GuidHelper.NewGuid());\n private clientLog: LogEntry[] = [];\n private allowedLogLevel: LogLevel;\n private logLevel = LogLevel.Error;\n private minLogLevel = LogLevel.Debug;\n private stack = new ActionStack(undefined);\n\n constructor(private http: HttpClient, private configService: ConfigService) {\n this.allowedLogLevel = Math.min(this.minLogLevel, this.logLevel);\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n (async () => {\n this.setLogLevel((await this.configService.getLoggingParams()).LogLevel);\n })();\n }\n\n // used for testing\n clear() {\n this.sessionId.set(GuidHelper.NewGuid());\n this.clientLog = [];\n }\n\n log(entry: LogEntry) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.stack.push(async () => {\n if (entry.level >= this.allowedLogLevel) {\n await this.addEntry(entry);\n }\n });\n }\n\n private setLogLevel(logLevel: SpectraLogLevel) {\n this.logLevel = ServerLogClientService.FromSpectraLogLevel(logLevel);\n this.allowedLogLevel = Math.min(this.minLogLevel, this.logLevel);\n }\n\n private async addEntry(entry: LogEntry) {\n const entries = this.clientLog;\n this.clientLog = [...entries.slice(entries.length - ServerLogClientService.ClientLogSize), entry];\n\n if (entry.level >= this.logLevel) {\n await this.publish();\n }\n }\n\n // stored logs will be cleared after each successful publish\n private async publish() {\n try {\n const appName = location.host.substr(0, 4) === 'www.' ? location.host.substr(4) : location.host;\n const config = await this.configService.getLoggingParams();\n const eventLog = this.clientLog;\n const lastEvent = eventLog[eventLog.length - 1];\n const sessionId = this.sessionId.get();\n const n: Navigator & { cpuClass?: string } = navigator;\n await lastValueFrom(\n this.http.post(\n config.LoggingServiceUrl,\n new HttpParams()\n .set('name', `Spectra Online Booking - ${sessionId}`)\n .set('title', lastEvent.msg)\n .set('level', ServerLogClientService.ToSpectraLogLevel(lastEvent.level).toString())\n .set('sessionId', sessionId)\n .set('appName', appName)\n .set('spc_codeName', n.appCodeName)\n .set('spc_appName', n.appName)\n .set('spc_appVersion', n.appVersion)\n .set('spc_language', n.language)\n .set('spc_platform', n.platform)\n .set('spc_userAgent', n.userAgent)\n .set('spc_javaEnabled', n.javaEnabled().toString())\n .set('spc_cookieEnabled', n.cookieEnabled.toString())\n .set('spc_cpuClass', n.cpuClass || '')\n .set('spc_onLine', n.onLine.toString())\n .set(\n 'spc_eventLog',\n JSON.stringify(\n eventLog.map((item) => {\n const msg = `${dayjs(item.date).format('YYYY-MM-DD HH:mm:ssZZ')} [${LogLevel[item.level]}] ${\n item.msg\n }`;\n return item.data.length === 0 ? msg : { [msg]: item.data };\n }),\n ),\n )\n .toString(),\n {\n headers: new HttpHeaders({\n 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',\n }),\n responseType: 'text',\n },\n ),\n );\n this.clientLog = [];\n } catch (err) {\n console.log(err);\n }\n }\n\n private static ToSpectraLogLevel(level: LogLevel) {\n // Spectra Debug log level does not match with standart Debug log level. It is more like Trace, so Debug and Trace are\n switch (level) {\n case LogLevel.Trace:\n return SpectraLogLevel.Debug;\n case LogLevel.Debug:\n return SpectraLogLevel.Trace;\n case LogLevel.Information:\n return SpectraLogLevel.Notice;\n case LogLevel.Warning:\n return SpectraLogLevel.Warn;\n case LogLevel.Error:\n return SpectraLogLevel.Error;\n case LogLevel.Critical:\n return SpectraLogLevel.Fatal;\n }\n return SpectraLogLevel.Trace;\n }\n\n private static FromSpectraLogLevel(level: SpectraLogLevel) {\n // Spectra Debug log level does not match with standart Debug log level. It is more like Trace, so Debug and Trace log levels are swapped\n switch (level) {\n case SpectraLogLevel.Trace:\n return LogLevel.Debug;\n case SpectraLogLevel.Debug:\n return LogLevel.Trace;\n case SpectraLogLevel.Notice:\n case SpectraLogLevel.Info:\n return LogLevel.Information;\n case SpectraLogLevel.Warn:\n return LogLevel.Warning;\n case SpectraLogLevel.Error:\n return LogLevel.Error;\n case SpectraLogLevel.Fatal:\n return LogLevel.Critical;\n }\n return LogLevel.Trace;\n }\n}\n","export class ActionStack {\n private stack: Promise;\n\n constructor(private init: T) {\n this.stack = Promise.resolve(init);\n }\n\n // will return previous result;\n async push(action?: () => Promise) {\n const result = await this.waitForPrevAction();\n if (action) {\n this.stack = (async () => {\n return await action();\n })();\n }\n return result;\n }\n\n // will return latest result or current if passed;\n async pushAndWait(action?: () => Promise) {\n await this.push(action);\n return await this.waitForPrevAction();\n }\n\n async waitForPrevAction() {\n try {\n return await this.stack;\n } catch (err) {\n this.stack = Promise.resolve(this.init);\n throw err;\n }\n }\n}\n","export class ConfigHandler {\n static Apply(target: T, source: Partial) {\n const changes: { [K in keyof T]?: boolean } = {};\n for (const key of Object.keys(source)) {\n const k = key as keyof T;\n const val = source[k] as T[keyof T] | undefined;\n if (val !== undefined && target[k] !== val) {\n target[k] = val;\n changes[k] = true;\n }\n }\n return changes;\n }\n}\n","export abstract class CustomError extends Error {\n abstract type?: string;\n}\n\nexport class InvalidPromocodeError extends CustomError {\n static Type = 'InvalidPromocodeError';\n type = InvalidPromocodeError.Type;\n\n constructor() {\n super('Promocode is invalid');\n }\n}\n\nexport class InvalidCustomerError extends CustomError {\n static Type = 'InvalidCustomerError';\n type = InvalidCustomerError.Type;\n\n constructor() {\n super('Customer is invalid');\n }\n}\n\nexport class PromocodeIsOutsideRangeError extends CustomError {\n static Type = 'PromocodeIsOutsideRangeError';\n type = PromocodeIsOutsideRangeError.Type;\n\n constructor(public start: string, public end: string) {\n super('Promocode is outside allowed range');\n }\n}\n","import dayjs from 'dayjs';\nimport { Moment } from 'moment';\nimport {\n AspDateString,\n AspDateWithTimeZoneString,\n DKDateString,\n SpectraDate,\n UTCDateString,\n UTCDateTimeString,\n} from './spectra-date';\n\nexport class DateHelper {\n static readonly DayInMs = 60 * 60 * 1000 * 24;\n static format(date: Date | SpectraDate, format: string) {\n return dayjs(date.getTime()).format(format);\n }\n\n static getTranslatedMonth(monthIndex: number) {\n const monthNames = [\n 'CAL_M01',\n 'CAL_M02',\n 'CAL_M03',\n 'CAL_M04',\n 'CAL_M05',\n 'CAL_M06',\n 'CAL_M07',\n 'CAL_M08',\n 'CAL_M09',\n 'CAL_M10',\n 'CAL_M11',\n 'CAL_M12',\n ];\n\n return monthNames[monthIndex];\n }\n\n static GetTranslatedWeekDay(dayIndex: number) {\n if (dayIndex === -1) {\n dayIndex = 6;\n }\n const weekDayNames = ['CAL_D1', 'CAL_D2', 'CAL_D3', 'CAL_D4', 'CAL_D5', 'CAL_D6', 'CAL_D0'];\n return weekDayNames[dayIndex];\n }\n\n static convertMomentToDate(input: Moment): Date {\n return new Date(\n input.year(),\n input.month(),\n input.date(),\n input.hour(),\n input.minute(),\n input.second(),\n input.millisecond(),\n );\n }\n\n static addDays(date: Date, days: number) {\n const result = new Date(date.getTime());\n result.setDate(result.getDate() + days);\n return new Date(result.getFullYear(), result.getMonth(), result.getDate());\n }\n\n static addMonth(date: Date, month: number) {\n const _dayjs = dayjs(date.getTime());\n\n const _date = _dayjs.set('date', 1).add(month, 'month').add(-1, 'day');\n return new Date(_date.year(), _date.month(), _date.date());\n }\n\n static daysBetween(date1: Date, date2: Date, days: number) {\n const secondDate = date2.getTime();\n const firstDate = date1.getTime();\n\n return Math.ceil(Math.abs((secondDate - firstDate) / DateHelper.DayInMs)) + days;\n }\n\n static FromAspDate(date: AspDateString) {\n const result = new Date(+date.replace(/[^\\d]+/g, ''));\n result.setMinutes(result.getMinutes() + result.getTimezoneOffset());\n return result;\n }\n\n static toAspString(date: Date): AspDateString {\n return `/Date(${date.getTime()})/`;\n }\n\n static FromUtcDate(date: UTCDateString | UTCDateTimeString) {\n const dateParts = date.split('-');\n return new Date(+dateParts[0], +dateParts[1] - 1, +dateParts[2].substring(0, 2));\n }\n\n static getTimeFromUtcDate(date: UTCDateTimeString) {\n const timePart = date.split('T');\n const time = timePart[1].split(':');\n return time[0] + ':' + time[1];\n }\n\n static ConvertToUTCDate(epochTimeStamp: number) {\n return new Date(epochTimeStamp);\n }\n\n static getMonthsBetweenDates(monthNumber1: number, monthNumber2: number) {\n return monthNumber2 - monthNumber1;\n }\n\n static ConvertToServerDate(date: Date) {\n const serverDate = new Date(date.getFullYear(), date.getMonth(), date.getDate());\n serverDate.setMinutes(serverDate.getMinutes() - serverDate.getTimezoneOffset());\n return serverDate;\n }\n\n static asDayjs(date: Date) {\n return dayjs(date.getTime());\n }\n\n static isEqual(date: Date, date2: Date) {\n return (\n date.getFullYear() === date2.getFullYear() &&\n date.getMonth() === date2.getMonth() &&\n date.getDate() === date2.getDate()\n );\n }\n\n static isLess(date: Date | null, date2: Date) {\n return (\n (date != null && date.getFullYear()) < date2.getFullYear() &&\n (date != null && date.getMonth()) < date2.getMonth() &&\n (date != null && date.getDate()) < date2.getDate()\n );\n }\n\n static isGreater(date: Date, date2: Date) {\n return date.valueOf() > date2.valueOf();\n }\n\n static toServerDateFormatString(date: Date) {\n return this.asDayjs(date).format('YYYY-MM-DD') as string;\n }\n\n static getFirstDateOfMonth(date: Date) {\n return new Date(date.getFullYear(), date.getMonth(), 1);\n }\n\n static getLastDateOfMonth(date: Date) {\n return new Date(date.getFullYear(), date.getMonth() + 1, 0);\n }\n\n static FromTime(time: number) {\n const date = new Date(time);\n return new Date(date.getFullYear(), date.getMonth(), date.getDate());\n }\n\n static FromDKDate(date: DKDateString) {\n return this.FromTime(new Date(date.replace(/(\\d{2})-(\\d{2})-(\\d{4})/, '$3-$2-$1T00:00:00.000Z')).getTime());\n }\n\n static GetMonthsAndYearFromToday(date: Date, locale: string, monthsToCount: number) {\n const monthYearArray = [] as ViewDate[];\n\n for (let step = 0; step < monthsToCount; step++) {\n const viewDataObject = {} as ViewDate;\n\n viewDataObject.ViewMonth = this.getTranslatedMonth(date.getMonth());\n viewDataObject.ViewYear = date.getFullYear().toString();\n viewDataObject.RealDate = date;\n\n monthYearArray.push(viewDataObject);\n date = DateHelper.addMonth(date, 2);\n }\n return monthYearArray;\n }\n\n static today() {\n const now = new Date();\n return new Date(now.getFullYear(), now.getMonth(), now.getDate());\n }\n\n static FromValues(year: number, month: number, day: number) {\n // The code is made this way, because in some cases the code before, calculated the right date, but 1 month ahead, do to browser bug in some browers.\n const buildDate = year.toString() + '-' + month.toString() + '-' + day.toString();\n const dateToUse = buildDate.match(/(\\d+)/g);\n if (dateToUse != null) {\n const num = parseInt(dateToUse[1], 10);\n return new Date(parseInt(dateToUse[0], 10), num - 1, parseInt(dateToUse[2], 10));\n }\n return new Date(year, month, day);\n }\n\n static FromAspDateWithTimezone(date: AspDateWithTimeZoneString) {\n let time = 0;\n const matches = date.match(/\\/Date\\((\\d+)(-)(\\d{2})(\\d{2})\\)\\//);\n if (matches) {\n time =\n (+matches[1] || 0) + (matches[2] === '+' ? 1 : -1) * ((+matches[3] || 0) * 60 + (+matches[4] || 0)) * 60000;\n }\n return this.FromTime(time);\n }\n}\n\nexport interface ViewDate {\n ViewMonth: string;\n ViewYear: string;\n RealDate: Date;\n}\n","export enum GuestType {\n UnknownType2 = 6,\n Infant = 7,\n Child = 8,\n UnknownType1 = 9,\n Adult = 10,\n Senior = 11,\n}\n","export type Guid = '00000000-0000-0000-0000-000000000000';\n\nexport class GuidHelper {\n static Empty = '00000000-0000-0000-0000-000000000000' as Guid;\n\n static NewGuid() {\n let result = '';\n for (let j = 0; j < 32; j++) {\n if (j === 8 || j === 12 || j === 16 || j === 20) {\n result = result + '-';\n }\n result += Math.floor(Math.random() * 16)\n .toString(16)\n .toUpperCase();\n }\n return result as Guid;\n }\n}\n","export class InMemoryCache {\n private cache = new Map>();\n\n /**\n * @lifetime - clear cache every {lifetime} ms. 0 - never clear\n */\n constructor(private lifeTime = 0) {}\n\n async getOrCreateAsync(key: string, factory: () => Promise) {\n let data = this.cache.get(key);\n if (!data) {\n data = (async () => {\n try {\n return await factory();\n } catch (err) {\n this.cache.delete(key); // should remove cached value on error\n throw err;\n }\n })();\n this.cache.set(key, data);\n if (this.lifeTime > 0) {\n // clear cache every {lifeTime} ms\n setTimeout(() => this.cache.delete(key), this.lifeTime);\n }\n }\n return await data;\n }\n\n clear() {\n this.cache.clear();\n }\n}\n","export * from './storage-client';\nexport * from './spectra-date';\nexport * from './room-guests';\nexport * from './in-memory-cache';\nexport * from './config-handler';\nexport * from './guest-type.enum';\nexport * from './custom-error';\nexport * from './action-stack';\nexport * from './guid-helper';\nexport * from './date-helper';\n","import { Injectable } from '@angular/core';\nimport { ActivatedRoute, NavigationExtras, Router } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { BasketQueryParams, BasketService } from '../core';\nimport { StorageClient } from '.';\n\n@Injectable()\nexport class NavigationHelper {\n page = new StorageClient(sessionStorage, 'navigationArray', null as NavigationModel[] | null);\n\n nextPage = new StorageClient(sessionStorage, 'navigationNextPage', null as NavigationModel | null);\n\n searchParams = new StorageClient(sessionStorage, 'searchParams', null as BasketQueryParams | null);\n\n paramsSubscription: Subscription | undefined;\n\n constructor(private router: Router, private basketService: BasketService, private acRoute: ActivatedRoute) {}\n\n async continue(page: string, route: string, params?: any, storeSearchParams = false) {\n if (storeSearchParams) {\n this.searchParams.set(params as BasketQueryParams);\n }\n\n let prev = this.page.get();\n if (prev) {\n const foundIndex = prev.findIndex((x) => x.page === page);\n if (foundIndex === -1) {\n prev.push({ page, params } as NavigationModel);\n } else {\n prev[foundIndex] = {\n page,\n params,\n } as NavigationModel;\n }\n } else {\n prev = [] as NavigationModel[];\n prev.push({ page, params } as NavigationModel);\n }\n\n this.page.set(prev);\n\n if (params) {\n await this.router.navigate([route], params);\n } else {\n await this.router.navigate([route]);\n }\n }\n\n collectSearchParams() {\n return this.searchParams.get();\n }\n\n goToUrl(url: string) {\n if (url === '') url = '/booking';\n document.location.href = url;\n }\n\n async goBack(clearBasket = false) {\n if (clearBasket) {\n this.basketService.basketBadgeNumberSet = '0';\n }\n\n const navigate = this.page.get();\n\n if (navigate) {\n const obejct = navigate[navigate.length - 1];\n\n if (obejct) {\n if (obejct.params) {\n await this.router.navigate([obejct.page], obejct.params);\n } else {\n await this.router.navigate([obejct.page]);\n }\n navigate.splice(navigate.length - 1, 1);\n this.page.set(navigate);\n }\n }\n }\n\n reset() {\n this.page.clear();\n }\n\n async navigateToPage(page: string, params?: NavigationExtras) {\n await this.router.navigate([page], params);\n }\n\n checkUrlForParamater(param: string) {\n if (this.router.url.includes(param)) {\n return true;\n } else {\n return false;\n }\n }\n\n // Used for navationbar at bottom on mobile\n async continueMobileNavigationbar(navigate: boolean, prepare: boolean, page?: string, route?: string, params?: any) {\n if (navigate) {\n const nav = this.nextPage.get();\n if (nav) {\n await this.continue(nav.page, nav.nextMobilePage, nav.params);\n }\n } else if (prepare) {\n this.nextPage.set({\n page,\n nextMobilePage: route,\n params,\n } as NavigationModel);\n }\n }\n\n // Used for navigationbar at bottom on mobile\n resetNextPage() {\n this.nextPage.clear();\n }\n\n isNextpageEmpty() {\n const res = this.nextPage.get();\n\n if (res) {\n return false;\n } else {\n return true;\n }\n }\n\n getRouteParam(paramValue: string) {\n let requestedValue = '';\n\n this.paramsSubscription = this.acRoute.queryParams.subscribe((params) => {\n requestedValue = params[paramValue] as string;\n });\n\n this.paramsSubscription.unsubscribe();\n\n return requestedValue;\n }\n}\n\ninterface NavigationModel {\n page: string;\n nextMobilePage: string;\n params: any;\n}\n","import { GuestType } from './guest-type.enum';\n\nexport class RoomGuests {\n static Categories = [\n GuestType.Adult,\n GuestType.UnknownType1,\n GuestType.Child,\n GuestType.Infant,\n GuestType.UnknownType2,\n GuestType.Senior,\n ];\n\n private aqcs = new Map();\n\n constructor(aqcs: number[] = []) {\n aqcs.forEach((count, index) => {\n this.set(RoomGuests.Categories[index], count);\n });\n }\n\n set(type: GuestType, count: number) {\n this.aqcs.set(type, count);\n }\n\n get(type: GuestType) {\n return this.aqcs.get(type) || 0;\n }\n\n getPersons() {\n return RoomGuests.Categories.reduce((sum, aqc) => sum + this.get(aqc), 0);\n }\n\n asArray() {\n return RoomGuests.Categories.map((category) => this.get(category));\n }\n\n toString() {\n return this.asArray().join(',');\n }\n\n toJSON() {\n return this.toString();\n }\n}\n","import dayjs from 'dayjs';\n\nexport class SpectraDate {\n static readonly DayInMs = 60 * 60 * 1000 * 24;\n Year: number;\n Month: number;\n Date: number;\n\n constructor(year?: number, month?: number, date?: number) {\n if (year === undefined) {\n const now = new Date();\n const d = new Date(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate());\n\n year = d.getUTCFullYear();\n month = d.getUTCMonth();\n date = d.getUTCDate();\n } else if (month === undefined) {\n month = 0;\n date = 1;\n } else if (date === undefined) {\n date = 1;\n }\n this.Year = year;\n this.Month = month;\n this.Date = date;\n }\n\n isEqual(date: SpectraDate) {\n return this.Year === date.Year && this.Month === date.Month && this.Date === date.Date;\n }\n\n getTime() {\n const date = Date.UTC(this.Year, this.Month, this.Date);\n return date;\n }\n\n addDays(days: number) {\n return SpectraDate.FromTime(this.getTime() + days * SpectraDate.DayInMs);\n }\n\n addMonth(month: number) {\n const date = this.toDayjs().set('date', 1).add(month, 'month').add(-1, 'day');\n return new SpectraDate(date.year(), date.month(), date.date());\n }\n\n format(format: string) {\n return dayjs(this.getTime()).format(format);\n }\n\n toDayjs() {\n return dayjs(this.getTime());\n }\n\n toString() {\n return this.toDayjs().format('YYYY-MM-DD') as UTCDateString;\n }\n\n toAspString(): AspDateString {\n return `/Date(${this.getTime()})/`;\n }\n\n toJSON() {\n return this.toString();\n }\n\n static FromTime(time: number) {\n const date = new Date(time);\n return new SpectraDate(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n }\n\n static FromAspDate(date: AspDateString) {\n return this.FromTime(+date.replace(/[^\\d]+/g, ''));\n }\n\n static FromDKDate(date: DKDateString) {\n return this.FromTime(new Date(date.replace(/(\\d{2})-(\\d{2})-(\\d{4})/, '$3-$2-$1T00:00:00.000Z')).getTime());\n }\n\n static FromAspDateWithTimezone(date: AspDateWithTimeZoneString) {\n let time = 0;\n const matches = date.match(/\\/Date\\((\\d+)(-)(\\d{2})(\\d{2})\\)\\//);\n if (matches) {\n time =\n (+matches[1] || 0) + (matches[2] === '+' ? 1 : -1) * ((+matches[3] || 0) * 60 + (+matches[4] || 0)) * 60000;\n }\n return this.FromTime(time);\n }\n\n static FromUtcDate(date: UTCDateString | UTCDateTimeString) {\n const dateParts = date.split('-');\n return new SpectraDate(+dateParts[0], +dateParts[1] - 1, +dateParts[2].substring(0, 2));\n }\n\n static FromValues(year: number, month: number, day: number) {\n return new SpectraDate(year, month, day);\n }\n}\n\nexport type AspDateString = `/Date(${number})/`;\nexport type AspDateWithTimeZoneString = '/Date(UTC+0200)/';\nexport type LocalizedDateString = 'dd.mm.yyyy';\nexport type UTCDateString = 'yyyy-mm-dd';\nexport type UTCDateTimeString = 'yyyy-mm-ddTHH:MM:SS';\nexport type DKDateString = 'dd-mm-yyyy';\nexport type TimeString = '12:00:00';\n","export class StorageClient {\n private static UsedKeys: string[] = [];\n\n private key: string;\n\n /**\n *\n * @param storage localStorage or sessionStorage\n * @param name unique string name\n * @param data object to be placed\n * @param expiresAfter default 30 days. 1 day is 86400000\n * @param version default: 1. on update - old data will be removed\n * @param allowMultiple default: false. For testing purpose. Allow multiple instatnces of storage with same name.\n */\n constructor(\n private storage: StorageType,\n name: string,\n private data: T,\n private expiresAfter = 30 /*days*/ * 86400000,\n private version = 1,\n allowMultiple = false,\n ) {\n this.key = `Storage_${name}`;\n if (!allowMultiple) {\n StorageClient.RegisterKey(this.key);\n }\n try {\n const item = this.storage.getItem(this.key);\n if (item !== null) {\n const storedItem = JSON.parse(item) as StoredItem;\n if (storedItem.v !== this.version) {\n throw new Error('StoredItem version mismatch');\n }\n if (storedItem.expires < new Date().getTime()) {\n throw new Error('StoredItem expired');\n }\n }\n } catch {\n this.clear();\n }\n }\n\n set(data: T) {\n const item: StoredItem = {\n data,\n v: this.version,\n expires: new Date().getTime() + this.expiresAfter,\n };\n this.storage.setItem(this.key, JSON.stringify(item));\n }\n\n get() {\n const item = this.storage.getItem(this.key);\n return item !== null ? (JSON.parse(item) as StoredItem).data : this.data;\n }\n\n clear() {\n this.storage.removeItem(this.key);\n }\n\n private static RegisterKey(key: string) {\n if (StorageClient.UsedKeys.indexOf(key) === -1) {\n StorageClient.UsedKeys.push(key);\n return key;\n } else {\n throw new Error(`Key named '${key}' is already registered.`);\n }\n }\n}\n\ninterface StoredItem {\n data: T;\n v: number;\n expires: number;\n}\n\nexport interface StorageType {\n setItem(key: string, value: string): void;\n getItem(key: string): string | null;\n removeItem(key: string): void;\n}\n","import { Country } from './country';\n\nexport const COUNTRIES: Country[] = [\n { AreaCode: '+45', Code: 'DK', Name: 'Denmark' },\n { AreaCode: '+46', Code: 'SE', Name: 'Sweden' },\n { AreaCode: '+47', Code: 'NO', Name: 'Norway' },\n { AreaCode: '+1', Code: 'US', Name: 'Canada' },\n { AreaCode: '+39', Code: 'IT', Name: 'Italy' },\n { AreaCode: '+1', Code: 'US', Name: 'United States of America' },\n { AreaCode: '+93', Code: 'AF', Name: 'Afghanistan' },\n { AreaCode: '+355', Code: 'AL', Name: 'Albania' },\n { AreaCode: '+213', Code: 'DZ', Name: 'Algeria' },\n { AreaCode: '+376', Code: 'AD', Name: 'Andorra' },\n { AreaCode: '+244', Code: 'AO', Name: 'Angola' },\n { AreaCode: '+672', Code: 'AQ', Name: 'Antarctica' },\n { AreaCode: '+54', Code: 'AR', Name: 'Argentina' },\n { AreaCode: '+297', Code: 'AW', Name: 'Aruba' },\n { AreaCode: '+61', Code: 'AU', Name: 'Australia' },\n { AreaCode: '+43', Code: 'AT', Name: 'Austria' },\n { AreaCode: '+994', Code: 'AZ', Name: 'Azerbaijan' },\n { AreaCode: '+973', Code: 'BH', Name: 'Bahrain' },\n { AreaCode: '+880', Code: 'BD', Name: 'Bangladesh' },\n { AreaCode: '+375', Code: 'BY', Name: 'Belarus' },\n { AreaCode: '+32', Code: 'BE', Name: 'Belgium' },\n { AreaCode: '+501', Code: 'BZ', Name: 'Belize' },\n { AreaCode: '+229', Code: 'BJ', Name: 'Benin' },\n { AreaCode: '+975', Code: 'BT', Name: 'Bhutan' },\n { AreaCode: '+591', Code: 'BO', Name: 'Bolivia' },\n { AreaCode: '+387', Code: 'BA', Name: 'Bosnia & Herzegovina' },\n { AreaCode: '+267', Code: 'BW', Name: 'Botswana' },\n { AreaCode: '+55', Code: 'BR', Name: 'Brazil' },\n { AreaCode: '+673', Code: 'BN', Name: 'Brunei Darussalam' },\n { AreaCode: '+359', Code: 'BG', Name: 'Bulgaria' },\n { AreaCode: '+226', Code: 'BF', Name: 'Burkina Faso' },\n { AreaCode: '+257', Code: 'BI', Name: 'Burundi' },\n { AreaCode: '+855', Code: 'KH', Name: 'Cambodia' },\n { AreaCode: '+237', Code: 'CM', Name: 'Cameroon' },\n { AreaCode: '+238', Code: 'CV', Name: 'Cape Verde Islands' },\n { AreaCode: '+236', Code: 'CF', Name: 'Central African Republic' },\n { AreaCode: '+235', Code: 'TD', Name: 'Chad' },\n { AreaCode: '+64', Code: 'NZ', Name: 'Chatham Island (New Zealand)' },\n { AreaCode: '+56', Code: 'CL', Name: 'Chile' },\n { AreaCode: '+86', Code: 'CN', Name: 'China (PRC)' },\n { AreaCode: '+61', Code: 'AU', Name: 'Cocos-Keeling Islands' },\n { AreaCode: '+57', Code: 'CO', Name: 'Colombia' },\n { AreaCode: '+269', Code: 'YT', Name: 'Comoros' },\n { AreaCode: '+242', Code: 'CG', Name: 'Congo' },\n { AreaCode: '+243', Code: 'CD', Name: 'Congo, Dem. Rep. of? (former Zaire)' },\n { AreaCode: '+682', Code: 'CK', Name: 'Cook Islands' },\n { AreaCode: '+506', Code: 'CR', Name: 'Costa Rica' },\n { AreaCode: '+225', Code: 'CI', Name: \"Cote d'Ivoire (Ivory Coast)\" },\n { AreaCode: '+385', Code: 'HR', Name: 'Croatia' },\n { AreaCode: '+53', Code: 'CU', Name: 'Cuba' },\n { AreaCode: '+599', Code: 'SX', Name: 'Curacao' },\n { AreaCode: '+357', Code: 'CY', Name: 'Cyprus' },\n { AreaCode: '+420', Code: 'CZ', Name: 'Czech Republic' },\n { AreaCode: '+253', Code: 'DJ', Name: 'Djibouti' },\n { AreaCode: '+670', Code: 'TL', Name: 'East Timor' },\n { AreaCode: '+56', Code: 'CL', Name: 'Easter Island' },\n { AreaCode: '+593', Code: 'EC', Name: 'Ecuador' },\n { AreaCode: '+20', Code: 'EG', Name: 'Egypt' },\n { AreaCode: '+503', Code: 'SV', Name: 'El Salvador' },\n { AreaCode: '+240', Code: 'GQ', Name: 'Equatorial Guinea' },\n { AreaCode: '+291', Code: 'ER', Name: 'Eritrea' },\n { AreaCode: '+372', Code: 'EE', Name: 'Estonia' },\n { AreaCode: '+251', Code: 'ET', Name: 'Ethiopia' },\n { AreaCode: '+500', Code: 'FK', Name: 'Falkland Islands (Malvinas)' },\n { AreaCode: '+298', Code: 'FO', Name: 'Faroe Islands' },\n { AreaCode: '+679', Code: 'FJ', Name: 'Fiji Islands' },\n { AreaCode: '+358', Code: 'FI', Name: 'Finland' },\n { AreaCode: '+33', Code: 'FR', Name: 'France' },\n { AreaCode: '+596', Code: 'MQ', Name: 'French Antilles' },\n { AreaCode: '+594', Code: 'GF', Name: 'French Guiana' },\n { AreaCode: '+689', Code: 'PF', Name: 'French Polynesia' },\n { AreaCode: '+241', Code: 'GA', Name: 'Gabonese Republic' },\n { AreaCode: '+220', Code: 'GM', Name: 'Gambia' },\n { AreaCode: '+49', Code: 'DE', Name: 'Germany' },\n { AreaCode: '+233', Code: 'GH', Name: 'Ghana' },\n { AreaCode: '+350', Code: 'GI', Name: 'Gibraltar' },\n { AreaCode: '+30', Code: 'GR', Name: 'Greece' },\n { AreaCode: '+299', Code: 'GL', Name: 'Greenland' },\n { AreaCode: '+590', Code: 'GP', Name: 'Guadeloupe' },\n { AreaCode: '+502', Code: 'GT', Name: 'Guatemala' },\n { AreaCode: '+224', Code: 'GN', Name: 'Guinea' },\n { AreaCode: '+245', Code: 'GW', Name: 'Guinea-Bissau' },\n { AreaCode: '+592', Code: 'GY', Name: 'Guyana' },\n { AreaCode: '+509', Code: 'HT', Name: 'Haiti' },\n { AreaCode: '+504', Code: 'HN', Name: 'Honduras' },\n { AreaCode: '+852', Code: 'HK', Name: 'Hong Kong' },\n { AreaCode: '+36', Code: 'HU', Name: 'Hungary' },\n { AreaCode: '+354', Code: 'IS', Name: 'Iceland' },\n { AreaCode: '+91', Code: 'IN', Name: 'India' },\n { AreaCode: '+62', Code: 'ID', Name: 'Indonesia' },\n { AreaCode: '+98', Code: 'IR', Name: 'Iran' },\n { AreaCode: '+964', Code: 'IQ', Name: 'Iraq' },\n { AreaCode: '+353', Code: 'IE', Name: 'Ireland' },\n { AreaCode: '+972', Code: 'IL', Name: 'Israel' },\n { AreaCode: '+81', Code: 'JP', Name: 'Japan' },\n { AreaCode: '+962', Code: 'JO', Name: 'Jordan' },\n { AreaCode: '+7', Code: 'RU', Name: 'Kazakhstan' },\n { AreaCode: '+254', Code: 'KE', Name: 'Kenya' },\n { AreaCode: '+686', Code: 'KI', Name: 'Kiribati' },\n { AreaCode: '+850', Code: 'KP', Name: 'Korea (North)' },\n { AreaCode: '+82', Code: 'KR', Name: 'Korea (South)' },\n { AreaCode: '+965', Code: 'KW', Name: 'Kuwait' },\n { AreaCode: '+996', Code: 'KG', Name: 'Kyrgyz Republic' },\n { AreaCode: '+856', Code: 'LA', Name: 'Laos' },\n { AreaCode: '+371', Code: 'LV', Name: 'Latvia' },\n { AreaCode: '+961', Code: 'LB', Name: 'Lebanon' },\n { AreaCode: '+266', Code: 'LS', Name: 'Lesotho' },\n { AreaCode: '+231', Code: 'LR', Name: 'Liberia' },\n { AreaCode: '+218', Code: 'LY', Name: 'Libya' },\n { AreaCode: '+423', Code: 'LI', Name: 'Liechtenstein' },\n { AreaCode: '+370', Code: 'LT', Name: 'Lithuania' },\n { AreaCode: '+352', Code: 'LU', Name: 'Luxembourg' },\n { AreaCode: '+853', Code: 'MO', Name: 'Macao' },\n { AreaCode: '+389', Code: 'MK', Name: 'Macedonia (Former Yugoslav Rep of.)' },\n { AreaCode: '+261', Code: 'MG', Name: 'Madagascar' },\n { AreaCode: '+265', Code: 'MW', Name: 'Malawi' },\n { AreaCode: '+60', Code: 'MY', Name: 'Malaysia' },\n { AreaCode: '+960', Code: 'MV', Name: 'Maldives' },\n { AreaCode: '+223', Code: 'ML', Name: 'Mali Republic' },\n { AreaCode: '+356', Code: 'MT', Name: 'Malta' },\n { AreaCode: '+692', Code: 'MH', Name: 'Marshall Islands' },\n { AreaCode: '+596', Code: 'MQ', Name: 'Martinique' },\n { AreaCode: '+222', Code: 'MR', Name: 'Mauritania' },\n { AreaCode: '+230', Code: 'MU', Name: 'Mauritius' },\n { AreaCode: '+269', Code: 'YT', Name: 'Mayotte Island' },\n { AreaCode: '+52', Code: 'MX', Name: 'Mexico' },\n { AreaCode: '+691', Code: 'FM', Name: 'Micronesia, (Federal States of)' },\n { AreaCode: '+373', Code: 'MD', Name: 'Moldova' },\n { AreaCode: '+377', Code: 'MC', Name: 'Monaco' },\n { AreaCode: '+976', Code: 'MN', Name: 'Mongolia' },\n { AreaCode: '+382', Code: 'ME', Name: 'Montenegro' },\n { AreaCode: '+212', Code: 'MA', Name: 'Morocco' },\n { AreaCode: '+258', Code: 'MZ', Name: 'Mozambique' },\n { AreaCode: '+95', Code: 'MM', Name: 'Myanmar' },\n { AreaCode: '+264', Code: 'NA', Name: 'Namibia' },\n { AreaCode: '+674', Code: 'NR', Name: 'Nauru' },\n { AreaCode: '+977', Code: 'NP', Name: 'Nepal' },\n { AreaCode: '+31', Code: 'NL', Name: 'Netherlands' },\n { AreaCode: '+599', Code: 'SX', Name: 'Netherlands Antilles' },\n { AreaCode: '+687', Code: 'NC', Name: 'New Caledonia' },\n { AreaCode: '+64', Code: 'NZ', Name: 'New Zealand' },\n { AreaCode: '+505', Code: 'NI', Name: 'Nicaragua' },\n { AreaCode: '+227', Code: 'NE', Name: 'Niger' },\n { AreaCode: '+234', Code: 'NG', Name: 'Nigeria' },\n { AreaCode: '+683', Code: 'NU', Name: 'Niue' },\n { AreaCode: '+968', Code: 'OM', Name: 'Oman' },\n { AreaCode: '+92', Code: 'PK', Name: 'Pakistan' },\n { AreaCode: '+680', Code: 'PW', Name: 'Palau' },\n { AreaCode: '+970', Code: 'PS', Name: 'Palestinian Settlements' },\n { AreaCode: '+507', Code: 'PA', Name: 'Panama' },\n { AreaCode: '+675', Code: 'PG', Name: 'Papua New Guinea' },\n { AreaCode: '+595', Code: 'PY', Name: 'Paraguay' },\n { AreaCode: '+51', Code: 'PE', Name: 'Peru' },\n { AreaCode: '+63', Code: 'PH', Name: 'Philippines' },\n { AreaCode: '+48', Code: 'PL', Name: 'Poland' },\n { AreaCode: '+351', Code: 'PT', Name: 'Portugal' },\n { AreaCode: '+974', Code: 'QA', Name: 'Qatar' },\n { AreaCode: '+262', Code: 'RE', Name: 'R?union Island' },\n { AreaCode: '+40', Code: 'RO', Name: 'Romania' },\n { AreaCode: '+7', Code: 'RU', Name: 'Russia' },\n { AreaCode: '+250', Code: 'RW', Name: 'Rwandese Republic' },\n { AreaCode: '+239', Code: 'ST', Name: 'S?o Tom? and Principe' },\n { AreaCode: '+685', Code: 'WS', Name: 'Samoa' },\n { AreaCode: '+378', Code: 'SM', Name: 'San Marino' },\n { AreaCode: '+966', Code: 'SA', Name: 'Saudi Arabia' },\n { AreaCode: '+221', Code: 'SN', Name: 'Senegal' },\n { AreaCode: '+381', Code: 'RS', Name: 'Serbia' },\n { AreaCode: '+248', Code: 'SC', Name: 'Seychelles Republic' },\n { AreaCode: '+232', Code: 'SL', Name: 'Sierra Leone' },\n { AreaCode: '+65', Code: 'SG', Name: 'Singapore' },\n { AreaCode: '+421', Code: 'SK', Name: 'Slovak Republic' },\n { AreaCode: '+386', Code: 'SI', Name: 'Slovenia' },\n { AreaCode: '+677', Code: 'SB', Name: 'Solomon Islands' },\n { AreaCode: '+252', Code: 'SO', Name: 'Somali Democratic Republic' },\n { AreaCode: '+27', Code: 'ZA', Name: 'South Africa' },\n { AreaCode: '+34', Code: 'ES', Name: 'Spain' },\n { AreaCode: '+94', Code: 'LK', Name: 'Sri Lanka' },\n { AreaCode: '+290', Code: 'SH', Name: 'St. Helena' },\n { AreaCode: '+508', Code: 'PM', Name: 'St. Pierre & Miquelon' },\n { AreaCode: '+249', Code: 'SD', Name: 'Sudan' },\n { AreaCode: '+597', Code: 'SR', Name: 'Suriname' },\n { AreaCode: '+268', Code: 'SZ', Name: 'Swaziland' },\n { AreaCode: '+41', Code: 'CH', Name: 'Switzerland' },\n { AreaCode: '+963', Code: 'SY', Name: 'Syria' },\n { AreaCode: '+886', Code: 'TW', Name: 'Taiwan' },\n { AreaCode: '+992', Code: 'TJ', Name: 'Tajikistan' },\n { AreaCode: '+255', Code: 'TZ', Name: 'Tanzania' },\n { AreaCode: '+66', Code: 'TH', Name: 'Thailand' },\n { AreaCode: '+670', Code: 'TL', Name: 'Timor Leste' },\n { AreaCode: '+228', Code: 'TG', Name: 'Togolese Republic' },\n { AreaCode: '+690', Code: 'TK', Name: 'Tokelau' },\n { AreaCode: '+676', Code: 'TO', Name: 'Tonga Islands' },\n { AreaCode: '+216', Code: 'TN', Name: 'Tunisia' },\n { AreaCode: '+90', Code: 'TR', Name: 'Turkey' },\n { AreaCode: '+993', Code: 'TM', Name: 'Turkmenistan' },\n { AreaCode: '+688', Code: 'TV', Name: 'Tuvalu' },\n { AreaCode: '+256', Code: 'UG', Name: 'Uganda' },\n { AreaCode: '+380', Code: 'UA', Name: 'Ukraine' },\n { AreaCode: '+971', Code: 'AE', Name: 'United Arab Emirates' },\n { AreaCode: '+44', Code: 'GB', Name: 'United Kingdom' },\n { AreaCode: '+598', Code: 'UY', Name: 'Uruguay' },\n { AreaCode: '+998', Code: 'UZ', Name: 'Uzbekistan' },\n { AreaCode: '+678', Code: 'VU', Name: 'Vanuatu' },\n { AreaCode: '+39', Code: 'IT', Name: 'Vatican City' },\n { AreaCode: '+58', Code: 'VE', Name: 'Venezuela' },\n { AreaCode: '+84', Code: 'VN', Name: 'Vietnam' },\n { AreaCode: '+681', Code: 'WF', Name: 'Wallis and Futuna Islands' },\n { AreaCode: '+967', Code: 'YE', Name: 'Yemen' },\n { AreaCode: '+260', Code: 'ZM', Name: 'Zambia' },\n { AreaCode: '+255', Code: 'TZ', Name: 'Zanzibar' },\n { AreaCode: '+263', Code: 'ZW', Name: 'Zimbabwe' },\n];\n","import { NgModule, Optional, SkipSelf } from '@angular/core';\nimport { CountryService } from './country.service';\n\n@NgModule({\n imports: [],\n declarations: [],\n providers: [CountryService],\n exports: [],\n})\nexport class CountryModule {\n constructor(@Optional() @SkipSelf() parentModule: CountryModule) {\n if (parentModule) {\n throw new Error('CountryModule is already loaded. Import it in the CoreModule only');\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Country } from './country';\n\n@Injectable()\nexport class CountryService {\n static Default: Country = {\n AreaCode: '+45',\n Code: 'DK',\n Name: 'Denmark',\n };\n\n constructor() {}\n\n async getCountries() {\n return (\n await import(\n /* webpackChunkName: \"countries\" */\n /* webpackMode: \"eager\" */\n './countries'\n )\n ).COUNTRIES;\n }\n\n async getCountry(code: string) {\n const country = (await this.getCountries()).find((c) => c.Code === code);\n if (country) {\n return country;\n } else {\n throw new Error(`Country with '${code}' code name does not exists`);\n }\n }\n}\n","export * from './country.module';\nexport * from './country';\nexport * from './country.service';\n","export * from './loader.module';\nexport * from './loader';\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'app-loader-item',\n templateUrl: './loader-item.component.html',\n})\nexport class LoaderItemComponent {\n @Input() msg: string | undefined;\n @Input() transparent = false;\n}\n","
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n {{ msg }}\n Loading content\n
\n","import { Component } from '@angular/core';\nimport { Loader } from './loader';\n\n@Component({\n selector: 'app-loader',\n templateUrl: './loader.component.html',\n})\nexport class LoaderComponent {\n message$ = this.loader.message$;\n\n constructor(private loader: Loader) {}\n}\n","\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { Loader } from './loader';\nimport { LoaderItemComponent } from './loader-item.component';\nimport { LoaderComponent } from './loader.component';\n\n@NgModule({\n imports: [CommonModule],\n providers: [Loader],\n declarations: [LoaderComponent, LoaderItemComponent],\n exports: [LoaderComponent, LoaderItemComponent],\n})\nexport class LoaderModule {}\n","import { Injectable } from '@angular/core';\nimport { LogService } from '@com/logging';\nimport { BehaviorSubject } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n@Injectable()\nexport class Loader {\n private messages$ = new BehaviorSubject([] as LoaderMessage[]);\n message$ = this.messages$.pipe(\n map((messages) =>\n messages.length > 0\n ? {\n ...messages[0],\n transparent: messages.every((m) => m.transparent), // if at least one is not transparent then every must be not transparent\n }\n : undefined,\n ),\n );\n\n constructor(protected log: LogService) {}\n\n show(msg?: string, transparent = true) {\n return this.addMessage(msg, transparent);\n }\n\n hideAll() {\n this.messages$.value.forEach((message) => message.hide());\n }\n\n async using(action: (loader: LoaderMessage) => Promise, msg?: string, transparent = true) {\n const loader = this.show(msg, transparent);\n try {\n return await action(loader);\n } finally {\n loader.hide();\n }\n }\n\n private addMessage(msg: string | undefined, transparent: boolean, timeout = 120000) {\n const message = {\n msg,\n transparent,\n hide: () => this.hide(message),\n };\n this.messages$.next([message, ...this.messages$.value]);\n const err = new Error();\n setTimeout(() => {\n const messageIndex = this.messages$.value.indexOf(message);\n if (messageIndex !== -1) {\n err.message = `LoaderService is not closed before timeout(${timeout})`;\n this.log.error(err.message, err.stack);\n message.hide();\n }\n }, timeout);\n return message;\n }\n\n private hide(m: LoaderMessage) {\n this.log.trace(`LoaderService hide(${m.msg}, ${m.transparent})`);\n this.messages$.next(this.messages$.value.filter((x) => x !== m));\n }\n}\n\nexport interface LoaderMessage {\n msg?: string;\n transparent: boolean;\n hide: () => void;\n}\n","export * from './messenger.module';\nexport * from './messenger';\n","import { AfterViewChecked, Component, ElementRef } from '@angular/core';\nimport { tap } from 'rxjs/operators';\n\nimport { Message, Messenger } from './messenger';\n\n@Component({\n selector: 'app-messenger',\n templateUrl: './messenger.component.html',\n})\nexport class MessengerComponent implements AfterViewChecked {\n private focus = false;\n\n messages$ = this.messenger.messages$.pipe(tap(() => (this.focus = true)));\n\n constructor(private messenger: Messenger, private el: ElementRef) {}\n\n ngAfterViewChecked() {\n if (this.focus) {\n this.focus = false;\n this.focusFirstMessage();\n }\n }\n\n onOverlayClick(message: Message) {\n if (message.onOverlayClick) {\n message.onOverlayClick();\n }\n }\n\n private focusFirstMessage() {\n const el = (this.el.nativeElement as HTMLDivElement).querySelector(\n '.message:last-child .default',\n ) as HTMLElement | null;\n if (el) {\n el.focus({\n preventScroll: true,\n });\n }\n }\n}\n","\n
0\" class=\"messenger\">\n \n
\n
\n \n
\n
\n
\n
\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { Messenger } from './messenger';\nimport { MessengerComponent } from './messenger.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [MessengerComponent],\n providers: [Messenger],\n exports: [MessengerComponent],\n})\nexport class MessengerModule {}\n","import { Injectable, NgZone, TemplateRef } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable()\nexport class Messenger {\n messages$ = new BehaviorSubject[]>([]);\n\n constructor(private zone: NgZone) {}\n\n show(template: TemplateRef, data: T, onOverlayClick?: () => void, customId?: string) {\n const message: Message = {\n template,\n data,\n onOverlayClick,\n customId: customId,\n };\n this.zone.run(() => {\n // ensure that all messages are shown and picked-up by angular\n this.messages$.next([...this.messages$.value, message]);\n });\n return message;\n }\n\n close(message: Message) {\n this.messages$.next(this.messages$.getValue().filter((x) => x !== message));\n }\n}\n\nexport interface Message {\n template: TemplateRef;\n data: T;\n onOverlayClick?: () => void;\n customId?: string;\n}\n","export * from './step-list.module';\nexport * from './step-list';\n","import { Component, OnDestroy } from '@angular/core';\nimport { Observable /*, Subscription*/ } from 'rxjs';\nimport { delay, map } from 'rxjs/operators';\nimport { ApplicationStateService, OriginEnum } from 'src/app/core';\nimport { Step, StepList } from './step-list';\n\n@Component({\n selector: 'app-step-list',\n templateUrl: './step-list.component.html',\n})\nexport class StepListComponent implements OnDestroy {\n private Steps: number[] = [Step.Search, Step.Package, Step.AddOn, Step.Customer, Step.Payment, Step.Complete];\n // private subscription: Subscription;\n steps$ = new Observable();\n\n constructor(private stepList: StepList, private applicationState: ApplicationStateService) {\n // this.subscription = this.applicationState.getOriginObservable().subscribe((origin) => {\n if (this.applicationState.Origin === OriginEnum.PaymentLink) {\n this.Steps = [Step.PaymentLink, Step.Payment, Step.Complete];\n } else {\n this.Steps = [Step.Search, Step.Package, Step.AddOn, Step.Customer, Step.Payment, Step.Complete];\n }\n // });\n\n this.steps$ = this.stepList.step$.pipe(\n delay(0),\n map(({ step, hasError }) => this.BuildSteps(step, hasError)),\n );\n }\n\n // eslint-disable-next-line @angular-eslint/no-empty-lifecycle-method\n ngOnDestroy() {\n // this.subscription.unsubscribe();\n }\n\n private BuildSteps(step: Step, hasError: boolean) {\n const completeIndex = this.Steps.indexOf(step);\n const steps: StepListStep[] = [];\n\n for (let i = 0; i < completeIndex; i++) {\n this.AddStep(steps, this.Steps[i], false, false, true);\n }\n if (completeIndex !== -1) {\n this.AddStep(steps, this.Steps[completeIndex], true, hasError);\n }\n for (let i = completeIndex + 1; i < this.Steps.length; i++) {\n this.AddStep(steps, this.Steps[i]);\n }\n return steps;\n }\n\n private AddStep(steps: StepListStep[], step: Step, active = false, error = false, complete = false) {\n if (step !== Step.Complete) {\n steps.push({\n title: (steps.length + 1).toString(),\n active,\n complete,\n error,\n });\n }\n }\n}\n\ninterface StepListStep {\n title: string;\n active: boolean;\n complete: boolean;\n error: boolean;\n}\n","
\n
\n
\n
\n \n \n \n {{ step.title }}\n \n
\n
\n
\n
\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { StepList } from './step-list';\nimport { StepListComponent } from './step-list.component';\n\n@NgModule({\n imports: [CommonModule],\n providers: [StepList],\n declarations: [StepListComponent],\n exports: [StepListComponent],\n})\nexport class StepListModule {}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\nexport enum Step {\n Search = 0,\n PaymentLink = 1,\n Package = 2,\n AddOn = 3,\n Customer = 4,\n Payment = 5,\n Complete = 6,\n}\n\n@Injectable()\nexport class StepList {\n step$ = new BehaviorSubject({ step: Step.Search, hasError: false });\n\n set(step: Step, isCompleted = true) {\n this.step$.next({ step, hasError: !isCompleted });\n }\n\n getStep() {\n return this.step$.value;\n }\n}\n","export * from './translation.module';\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { map } from 'rxjs/operators';\nimport { LocaleService } from 'src/app/core';\nimport { Messages } from 'src/i18n';\n\n@Pipe({ name: 't' })\nexport class TranslatePipe implements PipeTransform {\n constructor(private ls: LocaleService) {}\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n transform(key: keyof Messages, ...params: string[]) {\n return this.ls.translations$.pipe(\n map((translations) => {\n const value = translations[key];\n if (value !== undefined) {\n return value;\n } else {\n return 'Error';\n }\n }),\n );\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TranslatePipe } from './translate.pipe';\n\n@NgModule({\n imports: [CommonModule],\n providers: [],\n declarations: [TranslatePipe],\n exports: [TranslatePipe],\n})\nexport class TranslationModule {}\n","import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, Input, ViewChild, OnInit } from '@angular/core';\nimport { AddOnInformation, HotelAddonModel } from './add-on-card.component';\nimport { animate, AnimationEvent, state, style, transition, trigger } from '@angular/animations';\nimport { BehaviorSubject } from 'rxjs';\nimport { ApplicationStateService, BasketService, RoomCodeString } from '../../core';\n\n@Component({\n selector: 'app-add-on-card-modal',\n templateUrl: './add-on-card-modal.component.html',\n animations: [\n trigger('expandCollapse', [\n state(\n 'collapsed',\n style({\n height: '200px',\n }),\n ),\n state(\n 'expanded',\n style({\n height: '*',\n }),\n ),\n transition('expanded => collapsed', animate('400ms ease-in')),\n transition('collapsed => expanded', animate('400ms ease-in')),\n ]),\n ],\n})\nexport class AddOnCardModalComponent implements AfterViewInit, OnInit {\n @Input() totalAddOnInformation$: BehaviorSubject | undefined;\n @Input() message: HotelAddonModel | undefined;\n @Input() total = 0;\n\n showDescriptionBackdrop = true;\n openDescription: 'expanded' | 'collapsed' = 'collapsed';\n seatingFlow = false;\n\n messageLongDescriptionShowAnimation$ = new BehaviorSubject(false);\n @ViewChild('messageLongDescriptionRef') messageLongDescriptionRef: ElementRef | undefined;\n\n constructor(\n public applicationState: ApplicationStateService,\n private cdRef: ChangeDetectorRef,\n private basketService: BasketService,\n ) {}\n\n ngOnInit(): void {\n const basket = this.basketService.get();\n if (basket) {\n if (basket.bookings[0] && basket.bookings[0].RoomCode === ('' as RoomCodeString)) {\n this.seatingFlow = true;\n }\n }\n }\n\n ngAfterViewInit() {\n if (this.messageLongDescriptionRef?.nativeElement) {\n const { height } = this.messageLongDescriptionRef.nativeElement.getBoundingClientRect();\n this.messageLongDescriptionShowAnimation$.next(height > 200);\n }\n\n // This is intentional as we forcibly want to update a view after it has been checked\n this.cdRef.detectChanges();\n }\n\n animateOpenDescription(): void {\n if (this.openDescription === 'collapsed') {\n this.openDescription = 'expanded';\n } else {\n this.openDescription = 'collapsed';\n }\n\n // As there is no debounce or anything, changes can happen really fast, this makes sure its synced\n this.cdRef.detectChanges();\n }\n\n descriptionAnimationEvent(event: AnimationEvent) {\n if (event.triggerName === 'expandCollapse') {\n if (event.toState === 'expanded' && event.phaseName === 'done') {\n this.showDescriptionBackdrop = false;\n }\n\n if (event.toState === 'collapsed' && event.phaseName === 'start') {\n this.showDescriptionBackdrop = true;\n }\n }\n }\n}\n","
\n
\n
\n
\n \n \n \n
\n
\n \n
\n

\n {{ message.addOn.Name }}\n

\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n

\n {{ applicationState.RoomLabel | t | async }}\n {{ room.roomId | char }}\n

\n

\n {{ 'APA_Services' | t | async }}\n {{ room.roomId | char }}\n

\n \n
\n
\n
\n
\n
{{ day.weekDayName | t | async }} {{ day.date | date | async }}
\n

\n {{ 'APA_TotalOf' | t | async }} {{ total | price | async }}\n

\n
\n
\n
\n
\n \n \n \n {{ day.guestSelectCount }} / {{ day.maxGuestCount }}\n \n \n \n
\n
\n
\n
\n + {{ day.guestSelectCount * total | price | async }}\n
\n
\n
\n
\n
\n
\n
\n \n \n \n \n\n","import { Component, EventEmitter, Input, Output, TemplateRef, ViewChild } from '@angular/core';\nimport { ApplicationStateService, BasketService, Booking } from 'src/app/core';\nimport { DateHelper } from 'src/app/helpers';\nimport { Messenger } from 'src/app/modules/messenger';\nimport { ExtraServiceWithRoomsInformation } from './add-on.component';\nimport { BehaviorSubject } from 'rxjs';\nimport { BookingExtraServiceModel } from '../../core/modules/hotel/data-hotel.service';\nimport moment from 'moment';\n\n@Component({\n selector: 'app-add-on-card',\n templateUrl: './add-on-card.component.html',\n})\nexport class AddOnCardComponent {\n addOnInformation: AddOnInformation = {\n totalAmount: 0,\n guestCount: 0,\n };\n\n totalAddOnInformation$ = new BehaviorSubject(this.addOnInformation);\n addOnItem: ExtraServiceWithRoomsInformation | undefined;\n rooms: HotelAddonRoomModel[] | undefined;\n arrivalDate: number | undefined;\n departureDate: number | undefined;\n arrivalName: string | undefined;\n departureName: string | undefined;\n\n @ViewChild('messageAddOnDialog', { static: false })\n messageAddOnDialog: TemplateRef | undefined;\n\n isMaxHeight = false;\n\n @Output() itemSelect = new EventEmitter();\n @Input() set addOn(addOn: ExtraServiceWithRoomsInformation | undefined) {\n if (addOn) {\n this.addOnItem = { ...addOn };\n }\n }\n\n constructor(\n private messenger: Messenger,\n private basketService: BasketService,\n private applicationState: ApplicationStateService,\n ) {}\n\n setMaxHeight(isMaxHeight: boolean) {\n this.isMaxHeight = isMaxHeight;\n }\n\n onClick(addOn: ExtraServiceWithRoomsInformation) {\n if (this.addOnItem) {\n const rooms = AddOnCardComponent.calcValidDays(addOn);\n const { syncedRooms, syncedPricing } = this.syncBasket(rooms);\n this.buildDateStringForContentDialog();\n\n if (this.messageAddOnDialog) {\n this.applicationState.stopScrolling(true);\n this.totalAddOnInformation$.next(syncedPricing);\n const message = this.messenger.show(\n this.messageAddOnDialog,\n {\n addOn,\n rooms: syncedRooms,\n guestIncrement: (day: HotelAddonRoomDayModel, price: number) => {\n if (day.guestSelectCount < day.maxGuestCount) {\n day.guestSelectCount += 1;\n\n const { guestCount } = this.totalAddOnInformation$.getValue();\n\n const newGuestCount = guestCount + 1;\n this.totalAddOnInformation$.next({\n totalAmount: newGuestCount * price,\n guestCount: newGuestCount,\n });\n }\n },\n guestDecrement: (day: HotelAddonRoomDayModel, price: number) => {\n if (day.guestSelectCount >= 1) {\n day.guestSelectCount -= 1;\n\n const { guestCount } = this.totalAddOnInformation$.getValue();\n\n const newGuestCount = guestCount - 1;\n this.totalAddOnInformation$.next({\n totalAmount: newGuestCount * price,\n guestCount: newGuestCount,\n });\n }\n },\n accept: () => {\n this.applicationState.stopScrolling(false);\n this.messenger.close(message);\n\n this.onContentDialogSubmit(addOn, syncedRooms);\n },\n close: () => {\n this.applicationState.stopScrolling(false);\n this.messenger.close(message);\n },\n },\n () => {\n this.applicationState.stopScrolling(false);\n message.data.close();\n },\n 'dialog-container-services-messenger',\n );\n }\n }\n }\n\n onContentDialogSubmit(addOn: ExtraServiceWithRoomsInformation, rooms: HotelAddonRoomModel[]) {\n const roomAddOns: AddOnUpdate[] = [];\n rooms.forEach((room) => {\n const { guestCount, totalAmount } = room.days.reduce(\n (previousValue, currentValue) => {\n return {\n guestCount: previousValue.guestCount + currentValue.guestSelectCount,\n totalAmount: previousValue.totalAmount + currentValue.guestSelectCount * addOn.Amount,\n };\n },\n { guestCount: 0, totalAmount: 0 },\n );\n\n const dates = room.days\n .map((day) => {\n // Set to start of day\n day.date.setUTCHours(0, 0, 0, 0);\n\n return {\n Date: day.date.toISOString(),\n selectedCount: day.guestSelectCount,\n maxCount: -1,\n };\n })\n .filter((day) => day.selectedCount > 0);\n\n const bookingAddon: BookingExtraServiceModel = {\n Amount: totalAmount,\n Id: addOn.Id,\n Count: guestCount,\n Dates: dates,\n Name: addOn.Name,\n ServiceId: addOn.ServiceId,\n };\n\n const roomAddOn: AddOnUpdate = {\n room: room,\n addOn: bookingAddon,\n };\n\n roomAddOns.push(roomAddOn);\n });\n\n this.itemSelect.emit(roomAddOns);\n }\n\n buildDateStringForContentDialog() {\n const basket = this.basketService.get();\n\n if (basket) {\n this.arrivalDate = basket.params.ArrivalDate;\n this.departureDate = basket.params.DepartueDate;\n this.arrivalName = basket.params.ArrivalMonthName;\n this.departureName = basket.params.DepartueMonthName;\n }\n }\n\n get inBasket() {\n const basket = this.basketService.get();\n return basket?.bookings.some((b) => b.AddOns?.some((a) => a.Id === this.addOnItem?.Id));\n }\n\n get basketInfo(): AddOnInformation {\n const basket = this.basketService.get();\n\n let guestCount = 0;\n basket?.bookings.forEach((booking) => {\n booking.AddOns?.forEach((addOn) => {\n if (addOn.Id !== this.addOnItem?.Id) {\n return;\n }\n\n addOn.Dates.forEach((date) => {\n guestCount += date.selectedCount;\n });\n });\n });\n\n return {\n totalAmount: (this.addOnItem?.Amount ?? 0) * guestCount,\n guestCount: guestCount,\n };\n }\n\n removeAll(removeAddOn: ExtraServiceWithRoomsInformation) {\n const basket = this.basketService.get();\n\n if (basket === null) {\n return;\n }\n\n const newBookings: Booking[] = [];\n basket.bookings.forEach((booking) => {\n const newAddOn = booking.AddOns?.filter((addOn) => addOn.Id !== removeAddOn.Id);\n\n if (newAddOn) {\n newBookings.push({ ...booking, AddOns: newAddOn });\n } else {\n newBookings.push(booking);\n }\n });\n\n this.basketService.set({\n ...basket,\n bookings: newBookings,\n });\n }\n\n private syncBasket(rooms: HotelAddonRoomModel[]): {\n syncedRooms: HotelAddonRoomModel[];\n syncedPricing: AddOnInformation;\n } {\n const basket = this.basketService.get();\n const addOnInBasket = basket?.bookings.some((b) => b.AddOns && b.AddOns.length > 0);\n if (!addOnInBasket || !basket) {\n // Since this is add-ons for seatings only, reduce each room's days to the first, applying the room's maxGuestCount to all days,\n rooms.forEach((room) => {\n room.days = [{ ...room.days[0], maxGuestCount: room.maxGuestCount }];\n });\n\n return {\n syncedRooms: rooms,\n syncedPricing: {\n guestCount: 0,\n totalAmount: 0,\n },\n };\n }\n\n const syncedRooms: HotelAddonRoomModel[] = [];\n let guestCount = 0;\n rooms.forEach((room) => {\n // When booking AddOns seatings only (no rooms), always use first booking in basket.\n const onlySeating = basket.params.RateCode === '' && basket.params.BookingFlow === 1;\n const booking = basket.bookings[onlySeating ? 0 : room.roomId];\n\n if (!booking) {\n return;\n }\n\n const basketAddOn = booking.AddOns?.find((a) => a.Id === this.addOnItem?.Id);\n\n if ((booking.AddOns && booking.AddOns.length === 0) || !basketAddOn) {\n syncedRooms.push(room);\n return;\n }\n room.days = room.days.map((day) => {\n const basketDate = basketAddOn.Dates.find((d) => {\n const date = new Date(d.Date);\n\n // Set UTC Date to the date of the addOn\n date.setUTCDate(date.getDate());\n // Set UTC Date to start of day\n date.setUTCHours(0, 0, 0, 0);\n\n return DateHelper.isEqual(date, day.date);\n });\n\n if (basketDate) {\n guestCount += basketDate.selectedCount;\n return {\n date: new Date(basketDate.Date),\n weekDayName: DateHelper.GetTranslatedWeekDay(new Date(basketDate.Date).getDay() - 1),\n maxGuestCount: day.maxGuestCount,\n minGuestCount: 0,\n guestSelectCount: guestCount,\n };\n }\n\n return day;\n });\n\n syncedRooms.push(room);\n });\n\n return {\n syncedRooms,\n syncedPricing: {\n guestCount: guestCount,\n totalAmount: guestCount * (this.addOnItem?.Amount ?? 0),\n },\n };\n }\n\n private static calcValidDays(addOn: ExtraServiceWithRoomsInformation): HotelAddonRoomModel[] {\n const rooms: HotelAddonRoomModel[] = addOn.rooms.map((b) => {\n return {\n roomId: b.id,\n maxGuestCount: b.maxGuestCount,\n days: [],\n };\n });\n\n for (const room of rooms) {\n for (const day of addOn.Dates) {\n const date = moment(day.Date).utc().toDate();\n const monthToAdd = new Date().getMonth() !== date.getMonth() && date.getDate() === 1 ? 1 : 0;\n\n // Set UTC Date to the date of the addOn\n date.setUTCDate(date.getDate());\n // Set UTC Date to start of day\n date.setUTCHours(0, 0, 0, 0);\n // Set UTC month\n date.setUTCMonth(date.getMonth() + monthToAdd);\n\n // Only add the date if it's not already added, to avoid duplicate dates\n if (!room.days.some((dayCheck) => dayCheck.date.getTime() === date.getTime())) {\n const dateModel = {\n date: date,\n weekDayName: DateHelper.GetTranslatedWeekDay(new Date(day.Date).getDay() - 1),\n maxGuestCount: room && room.maxGuestCount !== undefined ? room.maxGuestCount : 0,\n minGuestCount: 0,\n guestSelectCount: 0,\n } as HotelAddonRoomDayModel;\n room.days.push(dateModel);\n }\n }\n }\n\n return rooms;\n }\n}\n\nexport interface AddOnInformation {\n totalAmount: number;\n guestCount: number;\n}\n\nexport interface HotelAddonModel {\n addOn: ExtraServiceWithRoomsInformation;\n rooms: HotelAddonRoomModel[];\n guestIncrement: (day: HotelAddonRoomDayModel, price: number) => void;\n guestDecrement: (day: HotelAddonRoomDayModel, price: number) => void;\n accept: () => void;\n close: () => void;\n}\n\ninterface HotelAddonRoomModel {\n roomId: number;\n maxGuestCount: number;\n days: HotelAddonRoomDayModel[];\n}\n\ninterface HotelAddonRoomDayModel {\n date: Date;\n weekDayName: string;\n maxGuestCount: number;\n minGuestCount: number;\n guestSelectCount: number;\n}\n\nexport interface AddOnUpdate {\n room: HotelAddonRoomModel;\n addOn: BookingExtraServiceModel;\n}\n","\n
\n
\n
\n \n
\n
\n
\n
\n
\n \n \n \n \n

\n {{ 'RPA_Image' | t | async }}\n

\n
\n
\n
\n
\n
\n

\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
{{ 'RPA_From' | t | async }} {{ addOnItem.Amount | price | async }}
\n
\n
\n
\n \n
\n

\n {{ basketInfo.guestCount }} {{ 'APA_TotalInBasket' | t | async }} +{{ basketInfo.totalAmount | price | async }}\n

\n

\n {{ 'APA_Remove' | t | async }}\n

\n
\n\n\n\n \n\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { LogService } from '@com/logging';\nimport moment from 'moment';\nimport { combineLatest, from, Observable } from 'rxjs';\nimport { switchMap, tap } from 'rxjs/operators';\nimport {\n ApplicationStateService,\n Basket,\n BasketService,\n CustomerService,\n Locale,\n LocaleService,\n RoomCodeString,\n TrackingService,\n} from 'src/app/core';\nimport { Loader } from 'src/app/core';\nimport {\n BookingExtraServiceModel,\n ExtraServiceModel,\n DataHotelService,\n} from '../../core/modules/hotel/data-hotel.service';\nimport { DateHelper, GuestType } from '../../helpers';\nimport { NavigationHelper } from '../../helpers/navigation-helper';\nimport { AddOnUpdate } from './add-on-card.component';\n\n@Component({\n selector: 'app-add-on',\n templateUrl: './add-on.component.html',\n})\nexport class AddOnComponent implements OnInit, OnDestroy {\n basket: Basket | undefined;\n addOns$: Observable | undefined;\n bookingFlow = 1;\n seatingFlow = false;\n\n constructor(\n private log: LogService,\n private loader: Loader,\n private basketService: BasketService,\n private dataHotelService: DataHotelService,\n private localeService: LocaleService,\n private customerService: CustomerService,\n private trackingService: TrackingService,\n private applicationState: ApplicationStateService,\n private navigationHelper: NavigationHelper,\n ) {}\n\n async ngOnInit() {\n this.applicationState.stopScrolling(false);\n this.basket = await this.getBasketOrFail();\n\n if (this.basket.bookings[0] && this.basket.bookings[0].RoomCode === ('' as RoomCodeString)) {\n this.seatingFlow = true;\n }\n\n if (!this.applicationState.UseExtraServices && !this.seatingFlow) {\n await this.navigationHelper.navigateToPage(`/customer`);\n }\n\n this.bookingFlow = Number(this.applicationState.BookingFlow);\n window.scrollTo(0, 0);\n this.trackingService.pageView(`/booking/${this.basket.params.hotelCode}/add-on`);\n\n this.addOns$ = combineLatest([this.localeService.locale$, this.customerService.customerId$]).pipe(\n switchMap(([locale, customerId]) =>\n from(this.loadAddOns(locale, customerId, this.seatingFlow)).pipe(\n tap(async (addOns) => {\n if (addOns.length === 0) {\n await this.onMoveToNextClick(false);\n await this.prepareNavigation(false);\n }\n }),\n ),\n ),\n );\n\n await this.prepareNavigation();\n }\n\n ngOnDestroy(): void {\n this.navigationHelper.resetNextPage();\n }\n\n async prepareNavigation(addOnsAvailable = true) {\n const basket = this.getBasket();\n if (addOnsAvailable) {\n this.applyBasket(basket);\n }\n await this.navigationHelper.continueMobileNavigationbar(false, true, '/add-on', `/customer`, {\n replaceUrl: !addOnsAvailable,\n });\n }\n\n async onItemSelect(addOnUpdates: AddOnUpdate[]) {\n const basket = this.getBasket();\n\n addOnUpdates.forEach((addOnUpdate) => {\n const { room, addOn } = addOnUpdate;\n\n const booking = basket.bookings[room.roomId <= basket.bookings.length - 1 ? room.roomId : 0];\n if (room.roomId >= basket.bookings.length) {\n this.log.debug(`Warning: basket.booking[${room.roomId}] not found, using first booking in basket instead.`);\n }\n\n if (!booking.AddOns) {\n booking.AddOns = [] as BookingExtraServiceModel[];\n }\n\n // If the addOn we got back has no selected dates, remove all selected\n if (addOn.Dates.length === 0) {\n const newBookings = booking.AddOns.filter((b) => b.Id !== addOn.Id);\n booking.AddOns = [...newBookings];\n return;\n }\n\n const addOnIndex = booking.AddOns.findIndex((x) => x.Id === addOn.Id);\n\n // When not in basket already\n if (addOnIndex === -1) {\n booking.AddOns.push(addOn);\n return;\n }\n\n // When in basket already\n booking.AddOns[addOnIndex] = addOn;\n });\n\n this.applyBasket(basket);\n }\n\n async onMoveToNextClick(addOnsAvailable = true) {\n const basket = this.getBasket();\n if (addOnsAvailable) {\n this.applyBasket(basket);\n }\n\n if (!addOnsAvailable) {\n await this.navigationHelper.navigateToPage(`/customer`, {\n replaceUrl: !addOnsAvailable,\n });\n } else {\n await this.navigationHelper.continue('/add-on', `/customer`, {\n replaceUrl: !addOnsAvailable,\n });\n }\n }\n\n async goBack() {\n await this.navigationHelper.goBack();\n }\n\n private applyBasket(basket: Basket) {\n this.basketService.set(basket);\n }\n\n private getBasket() {\n const basket = this.basketService.get();\n if (!basket) {\n throw new Error('Basket must exist');\n }\n return basket;\n }\n\n private getAqcCounts(item: any) {\n // Get count for all types except Room (Room is irrelevant for seatings)\n const counts = {\n adults: this.countByGuestType(item, 'Adult'),\n children: this.countByGuestType(item, 'Child'),\n infants: this.countByGuestType(item, 'Infant'),\n seniors: this.countByGuestType(item, 'Senior'),\n teenagers: this.countByGuestType(item, 'Teenager'),\n } as AqcCounts;\n return counts;\n }\n\n private getAqcCountsBasketSeatings(basketSeatings: any) {\n const counts: AqcCounts = {\n adults: 0,\n children: 0,\n infants: 0,\n seniors: 0,\n teenagers: 0,\n };\n\n for (const item of basketSeatings) {\n const { adults, children, infants, seniors, teenagers } = this.getAqcCounts(item);\n counts.adults += adults;\n counts.children += children;\n counts.infants += infants;\n counts.seniors += seniors;\n counts.teenagers += teenagers;\n }\n\n return counts;\n }\n\n private countByGuestType(item: any, type: string): number {\n return item.SeatGuest.reduce((total: number, guest: any) => {\n if (guest.AQC[type] === true) {\n return total + Number(guest.Count);\n }\n return total;\n }, 0);\n }\n\n private async getBasketOrFail() {\n try {\n const basket = this.basketService.get();\n if (!basket) {\n const translation = await LocaleService.LoadTranslations(await this.localeService.getLocale());\n throw new Error(translation.EXC_EmptyBasket);\n }\n if (basket.bookings.length === 0) {\n const translation = await LocaleService.LoadTranslations(await this.localeService.getLocale());\n throw new Error(translation.EXC_EmptyBasket);\n }\n return basket;\n } catch (err) {\n this.log.error(`AddOnRoute getBasket() failed: ${(err as any).message}`);\n await this.navigationHelper.continue('/add-on', '/search');\n throw err;\n }\n }\n\n private async loadAddOns(\n locale: Locale,\n customerId: number | undefined,\n seatingFlow: boolean,\n ): Promise {\n const basket = this.getBasket();\n const { hotelCode, arrival, stay, rooms } = basket.params;\n\n let addonsArray = [] as ExtraServiceModel[][];\n\n if (seatingFlow) {\n // --- SeatingFlow\n\n const basketSeatings = basket.bookings[0].Seatings;\n\n if (basketSeatings) {\n // Get total AQC count of all seatings in basket.\n // This is so each item can get the correct number of ExtraServices, because each ExtraService might be available for multiple AQC's.\n const aqcCountsBasketSeatings = this.getAqcCountsBasketSeatings(basketSeatings);\n\n await this.loader.using(async () => {\n for (const item of basketSeatings) {\n const info = await this.dataHotelService.GetECommerceExtraServices({\n hotelCode: hotelCode,\n ratePlan: null,\n fromDate: DateHelper.toServerDateFormatString(moment(item.Date).toDate()),\n toDate: DateHelper.toServerDateFormatString(moment(item.Date).toDate()),\n lang: await this.localeService.getLocale(),\n adultCount: aqcCountsBasketSeatings.adults,\n agecategory1count: aqcCountsBasketSeatings.teenagers,\n agecategory2count: aqcCountsBasketSeatings.children,\n agecategory3count: aqcCountsBasketSeatings.infants,\n agecategory4count: aqcCountsBasketSeatings.seniors,\n roomCode: '',\n seatingCode: item.SeatGuest[0].SeatId,\n });\n\n if (info) {\n addonsArray.push(info);\n }\n }\n }, 'LOA_Addons');\n }\n } else {\n // --- Not SeatingFlow\n\n // Load addons for all rooms\n addonsArray = await Promise.all(\n Array(basket.bookings.length)\n .fill(0)\n .map(async (v, idx) => {\n const guests = rooms[idx];\n const booking = basket.bookings[idx];\n\n return await this.loader.using(async () => {\n try {\n const adults = guests.get(GuestType.Adult);\n const seniors = guests.get(GuestType.Senior);\n const cat1 = guests.get(GuestType.UnknownType1);\n const cat2 = guests.get(GuestType.Child);\n const cat3 = guests.get(GuestType.Infant);\n const info = await this.dataHotelService.GetECommerceExtraServices({\n hotelCode: hotelCode,\n ratePlan: booking.RateCode,\n fromDate: DateHelper.toServerDateFormatString(moment(arrival).toDate()),\n toDate: DateHelper.toServerDateFormatString(DateHelper.addDays(arrival, stay)),\n lang: await this.localeService.getLocale(),\n adultCount: adults,\n agecategory1count: cat1,\n agecategory2count: cat2,\n agecategory3count: cat3,\n agecategory4count: seniors,\n roomCode: booking.RoomCode,\n seatingCode: undefined,\n });\n\n return info;\n } catch (err) {\n this.log.error(`AddOnRoute failed to load addons. ${(err as any).message}`);\n return [] as ExtraServiceModel[];\n }\n }, 'LOA_Addons');\n }),\n );\n }\n\n // Flatten and filter addons array and add available booking rooms/indexes with their respective count\n const extraServiceInfos: ExtraServiceWithRoomsInformation[] = [];\n addonsArray.forEach((addonArray, bookingIndex) => {\n addonArray.forEach((addon) => {\n const existingAddon = extraServiceInfos.find((a) => a.Id === addon.Id);\n if (!existingAddon) {\n const extraServiceInfo: ExtraServiceWithRoomsInformation = {\n ...addon,\n rooms: [{ id: bookingIndex, maxGuestCount: addon.Count }],\n };\n\n extraServiceInfos.push(extraServiceInfo);\n } else {\n if (!seatingFlow) {\n existingAddon.rooms.push({\n id: bookingIndex,\n maxGuestCount: addon.Count,\n });\n } else {\n existingAddon.Dates.push(...addon.Dates);\n }\n //existingAddon.Dates.forEach((date) => {\n // date.maxCount = addon.Count;\n //});\n }\n });\n });\n\n extraServiceInfos.sort((a, b) => a.SortIndex - b.SortIndex);\n return extraServiceInfos;\n }\n}\n\ninterface AqcCounts {\n adults: number;\n teenagers: number;\n children: number;\n infants: number;\n seniors: number;\n}\n\nexport interface ExtraServiceWithRoomsInformation extends ExtraServiceModel {\n rooms: [\n {\n id: number;\n maxGuestCount: number;\n },\n ];\n}\n","
\n
\n {{ 'COM_Back' | t | async }}\n {{ 'COM_Continue' | t | async }}\n

\n {{ 'APA_ChooseYourAddOns' | t | async }}\n

\n

\n {{ 'APA_ChooseYourAddOns' | t | async }}\n

\n \n
\n\n \n \n \n \n \n \n \n\n
\n
\n \n
\n
\n
\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { AppQueryParams } from '../../../app.component';\nimport {\n ApplicationStateService,\n BasketQueryParams,\n BasketService,\n HotelService,\n LocaleService,\n SearchParams,\n} from '../../../core';\nimport { ConferenceRoom } from '../../../core/modules/hotel/data-hotel.service';\nimport { DateHelper, RoomGuests } from '../../../helpers';\nimport { NavigationHelper } from '../../../helpers/navigation-helper';\nimport { SearchComponent } from '../../search/search.component';\nimport { CalendarModel, ConferenceSearchComponent, Day } from '../conference-search/conference-search.component';\n\n@Component({\n selector: 'app-conference-details',\n templateUrl: './conference-details.component.html',\n})\nexport class ConferenceDetailsComponent implements OnInit, OnDestroy {\n conferenceRoomInfo: ConferenceRoom | undefined;\n selectedImage: string | undefined;\n calendarDates: CalendarModel | undefined;\n currentDate = new Date();\n startDate: Date | undefined;\n startMonth: string | undefined;\n endDate: Date | undefined;\n endMonth: string | undefined;\n showCalendar = false;\n\n basket = this.getBasket(this.route.snapshot.queryParams as AppQueryParams);\n\n constructor(\n private navigationHelper: NavigationHelper,\n private basketService: BasketService,\n private route: ActivatedRoute,\n private hotelService: HotelService,\n private applicationState: ApplicationStateService,\n private localeService: LocaleService,\n ) {}\n\n async ngOnInit() {\n document.body.classList.remove('addBackGround');\n document.body.classList.remove('addBackGroundWithAnimation');\n document.body.style.backgroundImage = '';\n\n if (this.basket.params.ConferenceRoomCode) {\n this.conferenceRoomInfo = await this.hotelService.GetECommerceConferenceRoomInfo(\n this.applicationState.CurrentHotelCode,\n await this.localeService.getLocale(),\n this.basket.params.ConferenceRoomCode,\n );\n this.selectedImage = this.conferenceRoomInfo.ImageOfRoom1;\n }\n await this.buildCalendarModel();\n await this.prepareNavigation();\n }\n\n ngOnDestroy(): void {\n this.navigationHelper.resetNextPage();\n }\n\n async prepareNavigation() {\n // await this.navigationHelper.continueMobileNavigationbar(false, true, '/guests', '/products', { queryParams: { HotelCode: this.applicationState.CurrentHotelCode, ArrivalDate: DateHelper.toServerDateFormatString(new Date()), LengthOfStay: 30, guest: this.guestCounter } });\n }\n\n async goBack() {\n await this.navigationHelper.goBack();\n }\n\n async onMoveToNextClick() {\n await this.navigationHelper.continue('/conference-rooms', '/conference-details');\n }\n\n newImageClick(image: string) {\n this.selectedImage = image;\n }\n\n async nextMonth() {\n this.currentDate = DateHelper.addMonth(this.currentDate, 2);\n await this.buildCalendarModel();\n }\n\n async prevMonth() {\n this.currentDate = DateHelper.addMonth(this.currentDate, 0);\n await this.buildCalendarModel();\n }\n\n async buildCalendarModel() {\n const lastDay = DateHelper.getLastDateOfMonth(this.currentDate);\n const firstDay = DateHelper.getFirstDateOfMonth(this.currentDate);\n\n let dayCounter = 0;\n const model = {} as CalendarModel;\n model.days = [] as Day[];\n model.currentMonth = DateHelper.getTranslatedMonth(firstDay.getMonth());\n model.currentYear = firstDay.getFullYear();\n\n let dummyDaysAdded = false;\n\n while (dayCounter < lastDay.getDate()) {\n const day = {} as Day;\n\n day.date = DateHelper.addDays(firstDay, dayCounter);\n day.status = this.calculateStatus(day.date, new Date());\n day.active = day.status === dayStatus.open ? true : false;\n\n // Days before current monthdays (grayed out)\n if (!dummyDaysAdded) {\n let weekDay = day.date.getDay();\n let daysToSubract = this.calculateDaysToSubstract(weekDay);\n const days = this.daysToReach(weekDay);\n\n while (weekDay < days) {\n const dummyday = {} as Day;\n\n dummyday.date = DateHelper.addDays(firstDay, daysToSubract);\n dummyday.active = false;\n dummyday.status = dayStatus.invalid;\n\n model.days.push(dummyday);\n\n weekDay = weekDay + 1;\n daysToSubract = daysToSubract + 1;\n }\n dummyDaysAdded = true;\n }\n model.days.push(day);\n dayCounter = dayCounter + 1;\n }\n\n this.calendarDates = model;\n }\n\n calculateDaysToSubstract(weekDay: number) {\n switch (weekDay) {\n case 0: {\n return -6;\n }\n case 1: {\n return -5;\n }\n case 2: {\n return -1;\n }\n case 3: {\n return -3;\n }\n case 4: {\n return -3;\n }\n case 5: {\n return -4;\n }\n case 6: {\n return -7;\n }\n default: {\n return 0;\n }\n }\n }\n\n daysToReach(weekDay: number) {\n switch (weekDay) {\n case 0: {\n return 6;\n }\n case 1: {\n return 1;\n }\n case 2: {\n return 3;\n }\n case 3: {\n return 5;\n }\n case 4: {\n return 7;\n }\n case 5: {\n return 9;\n }\n case 6: {\n return 11;\n }\n default: {\n return 0;\n }\n }\n }\n\n calculateStatus(date: Date, currentMonth: Date) {\n if (currentMonth.getMonth() > date.getMonth() && currentMonth.getFullYear() === date.getFullYear()) {\n return dayStatus.runOut;\n } else if (currentMonth.getMonth() === date.getMonth() && date.getDate() < new Date().getDate()) {\n return dayStatus.invalid;\n }\n return dayStatus.open;\n }\n\n async dateClick() {\n if (this.showCalendar) {\n this.showCalendar = false;\n } else if (!this.showCalendar) {\n this.startDate = undefined;\n this.endDate = undefined;\n await this.buildCalendarModel();\n this.showCalendar = true;\n }\n }\n\n private getBasket(queryParams: Partial) {\n const hotelCode = SearchComponent.ParseHotelCode(queryParams);\n const conferenceRoomCode = ConferenceSearchComponent.ParseConferenceRoomCode(queryParams);\n\n if (hotelCode) {\n const params: SearchParams = {\n hotelCode,\n arrival: new Date(),\n stay: 0,\n rooms: [] as RoomGuests[],\n single: false,\n ArrivalDate: 0,\n ArrivalFullYear: 0,\n ArrivalMonthName: '',\n DepartueDate: 0,\n DepartueFullYear: 0,\n DepartueMonthName: '',\n BookingFlow: 1,\n RateCode: '',\n ConferenceRoomCode: conferenceRoomCode,\n };\n return this.basketService.create(params);\n } else {\n const basket = this.basketService.get();\n if (basket) {\n return basket;\n } else {\n throw new Error('Basket must not be empty');\n }\n }\n }\n}\n\nenum dayStatus {\n closed = '#F87E7D',\n open = 'white',\n invalid = '#a9a9a9',\n runOut = '#707070',\n}\n","
\n
\n {{ 'COM_Back' | t | async }}\n\n {{ 'COM_Continue' | t | async }}\n\n \n {{ conferenceRoomInfo.RoomTypeName }}\n

\n

\n {{ conferenceRoomInfo.RoomTypeName }}\n

\n\n \n
\n\n
\n
\n
\n
\n \n \n \n \n

\n {{ 'RPA_Image' | t | async }}\n

\n
\n
\n
\n
\n \n \n
\n \n \n
\n \n \n
\n \n\n
\n

Vælg Bordopstilling

\n
\n \n
\n \n

{{ table.Description }}

\n
\n
\n \n \n
\n \n

\n
\n

\n
\n
\n

Vælg Pakke

\n
\n
\n \n
\n

Dag

\n
\n
\n

Pakke

\n
\n
\n

Pris

\n
\n
\n
\n \n
\n

29 Jun

\n
\n
\n

Lokale leje uden forplejning

\n
\n
\n

1.000 DKK

\n
\n
\n Book\n
\n
\n \n
\n

29 Jun

\n
\n
\n

Lokale leje med konference pakke

\n
\n
\n

1.000 DKK

\n
\n
\n Book\n
\n
\n \n
\n

30 Jun

\n
\n
\n

Lokale leje uden forplejning

\n
\n
\n

1.000 DKK

\n
\n
\n Book\n
\n \n \n
\n

30 Jun

\n
\n
\n

Lokale leje med konference pakke

\n
\n
\n

1.000 DKK

\n
\n
\n Book\n
\n \n \n
\n

1 Jul

\n
\n
\n

Lokale leje med konference pakke

\n
\n
\n

1.000 DKK

\n
\n
\n Book\n
\n \n \n \n \n \n \n \n\n\n
\n
\n
    \n \n \n
  • \n

    {{ calendarDates.currentMonth | t | async }}

    \n {{ calendarDates.currentYear }}\n
  • \n
\n
\n
    \n
  • {{ 'CAL_Mon' | t | async }}
  • \n
  • {{ 'CAL_Tirs' | t | async }}
  • \n
  • {{ 'CAL_Ons' | t | async }}
  • \n
  • {{ 'CAL_Tors' | t | async }}
  • \n
  • {{ 'CAL_Fre' | t | async }}
  • \n
  • {{ 'CAL_Lor' | t | async }}
  • \n
  • {{ 'CAL_Sun' | t | async }}
  • \n
\n
    \n \n
\n
\n
\n

{{ 'CAL_Occupied' | t | async }}

\n
\n

{{ 'CAL_Available' | t | async }}

\n
\n

{{ 'CAL_NotPossible' | t | async }}

\n
\n
\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { NavigationHelper } from '../../../helpers/navigation-helper';\n\n@Component({\n selector: 'app-conference-rooms',\n templateUrl: './conference-rooms.component.html',\n})\nexport class ConferenceRoomsComponent implements OnInit, OnDestroy {\n data: ConferenceUIModel[] | undefined;\n rateData: ConferenceRateUIModel[] | undefined;\n selectedConference: ConferenceUIModel | undefined;\n\n constructor(private navigationHelper: NavigationHelper) {}\n\n async ngOnInit() {\n document.body.classList.remove('addBackGround');\n document.body.classList.remove('addBackGroundWithAnimation');\n document.body.style.backgroundImage = '';\n await this.prepareNavigation();\n this.buildConferenceUIModel();\n }\n\n ngOnDestroy(): void {\n this.navigationHelper.resetNextPage();\n }\n\n async prepareNavigation() {\n // await this.navigationHelper.continueMobileNavigationbar(false, true, '/guests', '/products', { queryParams: { HotelCode: this.applicationState.CurrentHotelCode, ArrivalDate: DateHelper.toServerDateFormatString(new Date()), LengthOfStay: 30, guest: this.guestCounter } });\n }\n\n buildConferenceUIModel() {\n this.data = [] as ConferenceUIModel[];\n const galone = {} as GalleryModel;\n\n this.data.push({\n FromPrice: 4995,\n Name: 'Konference lokale A',\n Gallery: galone,\n Image: 'https://www.icgconstruction.com/sites/www.icgconstruction.com/files/assets/1484_06.jpg',\n Selected: false,\n MaxPers: 40,\n } as ConferenceUIModel);\n this.data.push({\n FromPrice: 1995,\n Name: 'Konference lokale B',\n Gallery: galone,\n Image: 'https://fasolutions.com/wp-content/uploads/2015/09/conference-room-768441_1920-e1443101700466.jpg',\n Selected: false,\n MaxPers: 10,\n } as ConferenceUIModel);\n this.data.push({\n FromPrice: 995,\n Name: 'Konference lokale C',\n Gallery: galone,\n Image:\n 'https://d24z4d3zypmncx.cloudfront.net/BlogPosts/basic-conference-room-design-a-webinar/images/basic-conference-room-design-a-webinar_header.png',\n Selected: false,\n MaxPers: 5,\n } as ConferenceUIModel);\n this.data.push({\n FromPrice: 7955,\n Name: 'Konference lokale D',\n Gallery: galone,\n Image: 'https://airexperience.dk/wp-content/uploads/2020/01/conference-room-indoor-skydiving.jpeg',\n Selected: false,\n MaxPers: 100,\n } as ConferenceUIModel);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onRoomClick() {}\n\n async goBack() {\n await this.navigationHelper.goBack();\n }\n\n async onMoveToNextClick() {\n await this.navigationHelper.continue('/conference-rooms', '/conference-rates');\n }\n\n buildConferenceRateUIModel() {\n this.rateData = [] as ConferenceRateUIModel[];\n const galone = {} as GalleryModel;\n\n this.rateData.push({\n Price: 4995,\n Name: 'Morgen mad',\n Gallery: galone,\n Image: 'https://food-fan.dk/wp-content/uploads/2018/09/4-nemme-opskrifter.jpg',\n Selected: false,\n Description: 'Forkæl jer selv med en overdådig morgen buffet til deres konference',\n } as ConferenceRateUIModel);\n this.rateData.push({\n Price: 1995,\n Name: 'Eftermiddageskaffe med kage',\n Gallery: galone,\n Image: 'https://rockpaperdresses.dk/wp-content/uploads/2017/05/sonderjyskkaffebord15-1.jpg',\n Selected: false,\n Description: 'Få serveret kaffe og hjemmebagt lagkage om eftermiddagen',\n } as ConferenceRateUIModel);\n this.rateData.push({\n Price: 1995,\n Name: 'Stor frokost buffet',\n Gallery: galone,\n Image: 'https://buffetkompagniet.dk/wp-content/uploads/2020/04/buffet.jpg',\n Selected: false,\n Description: 'Konference med den helt store frokost buffet, lavet af vores kendte kok',\n } as ConferenceRateUIModel);\n }\n}\n\ninterface ConferenceUIModel {\n Name: string;\n FromPrice: number;\n Image: string;\n Selected: boolean;\n MaxPers: number;\n}\n\ninterface ConferenceRateUIModel {\n Name: string;\n Price: number;\n Image: string;\n Selected: boolean;\n Description: string;\n}\n\ninterface GalleryModel {\n accept: () => void;\n close: () => void;\n nextImage: (image: string) => void;\n prevImage: (image: string) => void;\n selectedImage: string;\n imageArray: string[];\n}\n","
\n
\n {{ 'COM_Back' | t | async }}\n \n\n {{ 'COM_Continue' | t | async }}\n\n \n Vælg lokale\n

\n

Vælg lokale

\n\n

\n Vælg herunder det lokale du kunne tænke dig til din konference\n

\n\n \n
\n\n \n \n \n \n {{ 'RPA_From' | t | async }}\n {{ room.item.FromPrice | price | async }}\n \n
\n
\n
\n \n \n \n \n

\n {{ 'RPA_Image' | t | async }}\n

\n
\n
\n
\n
\n
\n \n {{ 'RPA_More' | t | async }}\n \n \n {{ 'RPA_Selected' | t | async }}\n \n
\n
\n
\n
\n

\n
\n \n
\n
\n

\n \n

\n
\n \n \n \n\n","import { Component, OnDestroy, OnInit, TemplateRef, ViewChild } from '@angular/core';\nimport { LogService } from '@com/logging';\nimport {\n ApplicationStateService,\n BasketQueryParams,\n HotelCodeString,\n HotelService,\n HotelType,\n Loader,\n LocaleService,\n} from '../../../core';\nimport { ConferenceRoom } from '../../../core/modules/hotel/data-hotel.service';\nimport { DateHelper } from '../../../helpers';\nimport { NavigationHelper } from '../../../helpers/navigation-helper';\nimport { Messenger } from '../../../modules/messenger';\nimport { DesignConfiguration } from '../../../shared/design/design-configuration';\n\n@Component({\n selector: 'app-conference-search',\n templateUrl: './conference-search.component.html',\n})\nexport class ConferenceSearchComponent implements OnInit, OnDestroy {\n @ViewChild('hotelChange', { static: false }) hotelChange: TemplateRef | undefined;\n @ViewChild('personDropdown', { static: false }) personDropdown: TemplateRef | undefined;\n @ViewChild('conferenceCalendar', { static: false }) conferenceCalendar: TemplateRef | undefined;\n\n hotel: HotelType | undefined;\n hotels = [] as HotelType[];\n logo = '';\n showCalendar = false;\n calendarDates: CalendarModel | undefined;\n currentDate = new Date();\n startDate: Date | undefined;\n startMonth: string | undefined;\n endDate: Date | undefined;\n endMonth: string | undefined;\n guestCountValues = [] as number[];\n selectedGuestCount = 1;\n conferenceRooms: ConferenceRoom[] | undefined;\n\n constructor(\n private log: LogService,\n private applicationState: ApplicationStateService,\n private messenger: Messenger,\n private navigationHelper: NavigationHelper,\n private loader: Loader,\n private hotelService: HotelService,\n private localeSerive: LocaleService,\n private designconfig: DesignConfiguration,\n ) {}\n\n async ngOnInit() {\n return await this.loader.using(\n async () => {\n await this.canUseModule();\n\n await this.buildCalendarModel();\n\n this.buildAQCArray();\n\n await this.prepareNavigation();\n\n await this.designconfig.addPageBackground();\n\n this.hotels = await this.loadHotels();\n\n this.hotel = this.hotels.find((x) => x.Code === this.applicationState.CurrentHotelCode);\n\n this.conferenceRooms = await this.hotelService.GetECommerceConferenceRoomsInfo(\n this.applicationState.CurrentHotelCode,\n await this.localeSerive.getLocale(),\n );\n\n this.logo = this.applicationState.ApplicationLogo;\n },\n 'LOA_HotelInformation',\n false,\n );\n }\n\n ngOnDestroy(): void {\n this.navigationHelper.resetNextPage();\n }\n\n buildAQCArray() {\n const number = Number(this.applicationState.MaxAQC);\n let i = 0;\n\n while (i <= number) {\n this.guestCountValues.push(i);\n i++;\n }\n\n this.guestCountValues.splice(0, 1);\n }\n\n async prepareNavigation() {\n // await this.navigationHelper.continueMobileNavigationbar(false, true, '/guests', '/products', { queryParams: { HotelCode: this.applicationState.CurrentHotelCode, ArrivalDate: DateHelper.toServerDateFormatString(new Date()), LengthOfStay: 30, guest: this.guestCounter } });\n }\n\n async nextMonth() {\n this.currentDate = DateHelper.addMonth(this.currentDate, 2);\n await this.buildCalendarModel();\n }\n\n async prevMonth() {\n this.currentDate = DateHelper.addMonth(this.currentDate, 0);\n await this.buildCalendarModel();\n }\n\n async loadHotels() {\n return await this.loader.using(\n async () => {\n try {\n return await this.hotelService.GetECommerceDepartmentsInformation();\n } catch (err: any) {\n this.log.error(`SearchRoute failed to load hotels. ${err.message}`);\n throw err;\n }\n },\n 'LOA_HotelInformation',\n false,\n );\n }\n\n async buildCalendarModel() {\n const lastDay = DateHelper.getLastDateOfMonth(this.currentDate);\n const firstDay = DateHelper.getFirstDateOfMonth(this.currentDate);\n\n let dayCounter = 0;\n const model = {} as CalendarModel;\n model.days = [] as Day[];\n model.currentMonth = DateHelper.getTranslatedMonth(firstDay.getMonth());\n model.currentYear = firstDay.getFullYear();\n\n let dummyDaysAdded = false;\n\n while (dayCounter < lastDay.getDate()) {\n const day = {} as Day;\n\n day.date = DateHelper.addDays(firstDay, dayCounter);\n day.status = this.calculateStatus(day.date, new Date());\n day.active = day.status === dayStatus.open ? true : false;\n\n // Days before current monthdays (grayed out)\n if (!dummyDaysAdded) {\n let weekDay = day.date.getDay();\n let daysToSubract = this.calculateDaysToSubstract(weekDay);\n const days = this.daysToReach(weekDay);\n\n while (weekDay < days) {\n const dummyday = {} as Day;\n\n dummyday.date = DateHelper.addDays(firstDay, daysToSubract);\n dummyday.active = false;\n dummyday.status = dayStatus.invalid;\n\n model.days.push(dummyday);\n\n weekDay = weekDay + 1;\n daysToSubract = daysToSubract + 1;\n }\n dummyDaysAdded = true;\n }\n model.days.push(day);\n dayCounter = dayCounter + 1;\n }\n\n this.calendarDates = model;\n }\n\n calculateDaysToSubstract(weekDay: number) {\n switch (weekDay) {\n case 0: {\n return -6;\n }\n case 1: {\n return -5;\n }\n case 2: {\n return -1;\n }\n case 3: {\n return -3;\n }\n case 4: {\n return -3;\n }\n case 5: {\n return -4;\n }\n case 6: {\n return -7;\n }\n default: {\n return 0;\n }\n }\n }\n\n daysToReach(weekDay: number) {\n switch (weekDay) {\n case 0: {\n return 6;\n }\n case 1: {\n return 1;\n }\n case 2: {\n return 3;\n }\n case 3: {\n return 5;\n }\n case 4: {\n return 7;\n }\n case 5: {\n return 9;\n }\n case 6: {\n return 11;\n }\n default: {\n return 0;\n }\n }\n }\n\n calculateStatus(date: Date, currentMonth: Date) {\n if (currentMonth.getMonth() > date.getMonth() && currentMonth.getFullYear() === date.getFullYear()) {\n return dayStatus.runOut;\n } else if (currentMonth.getMonth() === date.getMonth() && date.getDate() < new Date().getDate()) {\n return dayStatus.invalid;\n }\n return dayStatus.open;\n }\n\n async dateClick() {\n if (this.showCalendar) {\n this.showCalendar = false;\n } else if (!this.showCalendar) {\n this.startDate = undefined;\n this.endDate = undefined;\n await this.buildCalendarModel();\n this.showCalendar = true;\n }\n }\n\n async onHotelChange() {\n if (this.hotelChange) {\n const message = this.messenger.show(\n this.hotelChange,\n {\n name: '',\n accept: async (hotelCode: HotelCodeString) => {\n await this.applyHotelChange(hotelCode);\n this.applicationState.stopScrolling(false);\n this.messenger.close(message);\n },\n close: () => {\n this.applicationState.stopScrolling(false);\n this.messenger.close(message);\n },\n },\n () => {\n this.applicationState.stopScrolling(false);\n message.data.close();\n },\n );\n }\n }\n\n onGuestChange() {\n if (this.personDropdown) {\n const message = this.messenger.show(\n this.personDropdown,\n {\n count: this.guestCountValues,\n accept: async (guestCount: number) => {\n this.selectedGuestCount = guestCount;\n this.applicationState.stopScrolling(false);\n this.messenger.close(message);\n },\n close: () => {\n this.applicationState.stopScrolling(false);\n this.messenger.close(message);\n },\n },\n () => {\n this.applicationState.stopScrolling(false);\n message.data.close();\n },\n );\n }\n }\n\n async applyHotelChange(hotelCode: HotelCodeString) {\n this.applicationState.CurrentHotelCode = hotelCode;\n\n this.hotel = this.hotels.find((x) => x.Code === this.applicationState.CurrentHotelCode);\n await this.designconfig.applyTheme();\n await this.designconfig.addPageBackground();\n await this.designconfig.applyHotelChange(hotelCode);\n this.logo = this.applicationState.ApplicationLogo;\n this.conferenceRooms = await this.hotelService.GetECommerceConferenceRoomsInfo(\n this.applicationState.CurrentHotelCode,\n await this.localeSerive.getLocale(),\n );\n }\n\n async canUseModule() {\n await this.hotelService.BuildApplicationState();\n\n if (!this.applicationState.UseConferenceModule) {\n await this.navigationHelper.navigateToPage('/landing-page');\n }\n }\n\n async onFormSubmit() {\n await this.navigationHelper.continue('conference-rooms', 'conference-search');\n }\n\n resetAllSelectedDates() {\n if (this.calendarDates) {\n this.calendarDates.days.forEach((x) => {\n x.selected = false;\n });\n }\n }\n\n async clickedDate(day: Day) {\n day.selected = true;\n day.status = this.applicationState.ApplicationColor as dayStatus;\n if (this.startDate) {\n this.endDate = day.date;\n this.showCalendar = false;\n this.endMonth = DateHelper.getTranslatedMonth(day.date.getMonth());\n } else {\n this.startDate = day.date;\n this.startMonth = DateHelper.getTranslatedMonth(day.date.getMonth());\n }\n\n if (day.date < this.startDate) {\n this.resetAllSelectedDates();\n this.startDate = day.date;\n }\n\n if (day.date > this.startDate) {\n const daysBetween = DateHelper.daysBetween(this.startDate, day.date, 0);\n if (this.calendarDates) {\n let counter = 1;\n while (counter < daysBetween) {\n const date = DateHelper.addDays(this.startDate, counter);\n const dateToMark = this.calendarDates.days.find(\n (x) => x.date.getDate() === date.getDate() && x.date.getMonth() === date.getMonth(),\n );\n\n if (dateToMark) {\n dateToMark.selected = true;\n dateToMark.status = this.applicationState.ApplicationColor as dayStatus;\n }\n counter = counter + 1;\n }\n }\n }\n }\n\n async conferenceRoomClick(conferenceRoomCode: string) {\n await this.navigationHelper.continue('conference-search', 'conference-details', {\n queryParams: {\n HotelCode: this.applicationState.CurrentHotelCode,\n ConferenceRoomCode: conferenceRoomCode,\n },\n });\n }\n\n static ParseConferenceRoomCode(params: Partial) {\n const hotelCode = params.ConferenceRoomCode;\n return hotelCode;\n }\n}\n\nenum dayStatus {\n closed = '#F87E7D',\n open = 'white',\n invalid = '#a9a9a9',\n runOut = '#707070',\n}\n\nexport interface CalendarModel {\n days: Day[];\n currentMonth: string;\n currentYear: number;\n}\n\nexport interface Day {\n date: Date;\n active: boolean;\n status: dayStatus;\n selected: boolean;\n}\n\ninterface ConferenceHotelPicker {\n name: string;\n accept: (hotelCode: HotelCodeString) => void;\n close: () => void;\n}\n\ninterface GuestPicker {\n count: number[];\n accept: (guestCount: number) => void;\n close: () => void;\n}\n","
\n \n
\n
\n
\n
\n

Hotel

\n
\n
\n

{{ hotel.Name }}

\n
\n
\n
\n

Personer

\n
\n
\n

{{ selectedGuestCount }}

\n
\n
\n
\n

Dato

\n
\n
\n

\n {{ startDate.getDate() }}. {{ startMonth | t | async }} - {{ endDate.getDate() }}.\n {{ endMonth | t | async }}\n

\n
\n
\n

Vælg dato

\n
\n
\n
\n \n {{ 'COM_Continue' | t | async }}\n \n
\n
\n
\n
\n
\n
\n

Meeting rooms

\n
\n
\n
\n
\n
\n
\n
\n \n \n \n \n

\n {{ 'RPA_Image' | t | async }}\n

\n
\n
\n

Fra 1000 DKK / pr. Person

\n
\n
\n

\n {{ item.RoomTypeName }}\n

\n
\n
\n

\n
\n
\n
\n
\n
\n
\n
\n
\n \n\n\n
\n\n\n
\n
\n

\n {{ applicationState.HotelLabel | t | async }}\n

\n
\n
\n
\n \n
\n
\n
\n\n\n\n
\n
\n

Antal Personer

\n
\n \n
\n
\n\n
\n
\n
    \n \n \n
  • \n

    {{ calendarDates.currentMonth | t | async }}

    \n {{ calendarDates.currentYear }}\n
  • \n
\n
\n
    \n
  • {{ 'CAL_Mon' | t | async }}
  • \n
  • {{ 'CAL_Tirs' | t | async }}
  • \n
  • {{ 'CAL_Ons' | t | async }}
  • \n
  • {{ 'CAL_Tors' | t | async }}
  • \n
  • {{ 'CAL_Fre' | t | async }}
  • \n
  • {{ 'CAL_Lor' | t | async }}
  • \n
  • {{ 'CAL_Sun' | t | async }}
  • \n
\n
    \n \n
\n
\n
\n

{{ 'CAL_Occupied' | t | async }}

\n
\n

{{ 'CAL_Available' | t | async }}

\n
\n

{{ 'CAL_NotPossible' | t | async }}

\n
\n
\n","import { Component, OnDestroy, OnInit, TemplateRef, ViewChild } from '@angular/core';\nimport { NgForm } from '@angular/forms';\nimport { LogService } from '@com/logging';\nimport { combineLatest, from, Observable } from 'rxjs';\nimport { distinctUntilChanged, map, switchMap, tap } from 'rxjs/operators';\nimport { ApplicationStateService, Loader, OriginEnum, TrackingService } from 'src/app/core';\nimport { Basket, BasketService, BookingService } from 'src/app/core';\nimport { DateHelper, UTCDateString, UTCDateTimeString } from 'src/app/helpers';\nimport { CountryService } from 'src/app/modules/country';\nimport { Messenger } from 'src/app/modules/messenger';\nimport { ConfigService, HotelCodeString } from '../../core/modules/config';\nimport { Customer, CustomerInfo } from '../../core/modules/customer/customer';\nimport { CustomerService } from '../../core/modules/customer/customer.service';\nimport {\n BookingExtraServiceModel,\n CancellationProtection,\n GiftcardReservationPayment,\n} from '../../core/modules/hotel/data-hotel.service';\nimport { HotelService } from '../../core/modules/hotel/hotel.service';\nimport { HotelType, Rate } from '../../core/modules/hotel/models';\nimport { Locale, LocaleService } from '../../core/modules/locale';\nimport {\n BookingInformation,\n BookingInformationBooking,\n BookingInformationGiftcard,\n BookingInformationSeating,\n PaymentFlowEnum,\n PaymentService,\n ReservationService,\n ReservationType,\n} from '../../core/modules/payment';\nimport { PromotionService } from '../../core/modules/promotion';\nimport { NavigationHelper } from '../../helpers/navigation-helper';\n\n@Component({\n selector: 'app-customer',\n templateUrl: './customer.component.html',\n})\nexport class CustomerComponent implements OnInit, OnDestroy {\n private isSubmitting = false;\n logo: string | undefined;\n contentDialogHeader: string | undefined;\n countries = this.loadCountries();\n basket: Basket | undefined;\n hasAddons = false;\n hasSeatings = false;\n hasTableReservation = false;\n hasGiftCard = false;\n hasRooms = true;\n hotel: HotelType | undefined;\n customer = ((customer: Customer) => ({\n isKnownCustomer: !!customer.Id,\n info: customer.Info,\n }))(this.customerService.getCustomer());\n isCustomerInfoEditable = true;\n needSubscribe = false;\n showSubscribeCheckbox = false;\n comment = '';\n defaultCountryCode = '';\n information$: Observable | undefined;\n acceptTerms = false;\n showGuestCountry = false;\n promocode = this.promotionService.getPromocode();\n useCancelationInsurance = false;\n giftcardInformation: GiftcardInformationModel | undefined;\n repeatEmailvalid = true;\n cancellationprotection: CancellationProtection | undefined;\n calculatedCancellationFee: number | undefined;\n\n @ViewChild('messageHotelTermsTempalte', { static: false })\n messageHotelTermsTempalte: TemplateRef | undefined;\n\n constructor(\n private log: LogService,\n private loader: Loader,\n private localeService: LocaleService,\n private countryService: CountryService,\n private customerService: CustomerService,\n private basketService: BasketService,\n private hotelService: HotelService,\n private messenger: Messenger,\n private config: ConfigService,\n private promotionService: PromotionService,\n private bookingService: BookingService,\n private applicationState: ApplicationStateService,\n private navigationHelper: NavigationHelper,\n private reservationService: ReservationService,\n private paymentService: PaymentService,\n private trackingService: TrackingService,\n ) {}\n\n async ngOnInit() {\n await this.getCancellationprotection();\n this.applicationState.PaymentlinkCallBack = 'false';\n window.scrollTo(0, 0);\n this.basket = await this.getBasketOrFail();\n const basket = this.basket;\n\n this.showSubscribeCheckbox = (await this.config.getCustomerParams()).ShowSubscribeCheckbox;\n\n const hotel = (this.hotel = await this.loadHotel(this.basket.params.hotelCode));\n this.isCustomerInfoEditable = !hotel.Settings.UseLogin || !this.customer.isKnownCustomer;\n this.hasAddons = this.basket.bookings.reduce(\n (has, booking) => has || !!(booking.AddOns && booking.AddOns.length > 0),\n false as boolean,\n );\n this.hasRooms = this.basket.bookings[0].RoomName !== '';\n this.hasSeatings = this.basket.bookings[0].Seatings !== undefined;\n\n this.hasTableReservation = this.basket.bookings[0].TableSeatings !== undefined;\n this.hasGiftCard = this.basket.bookings[0].Giftcards !== undefined;\n\n if (this.hasGiftCard) {\n this.repeatEmailvalid = false;\n }\n\n if (this.hasSeatings && !this.hasRooms) {\n this.applicationState.ReturnFromOnlySeating = 'true';\n this.basket.params.rooms = [];\n }\n this.showGuestCountry = (await this.config.getCustomerParams()).ShowGuestCountry;\n\n this.information$ = combineLatest([\n this.localeService.locale$.pipe(\n tap((locale) => {\n if (!this.customer.isKnownCustomer) {\n this.defaultCountryCode = locale.substring(3, 5);\n }\n }),\n ),\n this.promotionService.promocode$,\n this.customerService.customer$.pipe(\n tap((customer) => {\n this.customer = {\n isKnownCustomer: !!customer.Id,\n info: { ...customer.Info },\n };\n this.isCustomerInfoEditable = !hotel.Settings.UseLogin || !this.customer.isKnownCustomer;\n }),\n map((customer) => customer.Id || undefined),\n distinctUntilChanged(),\n ),\n ]).pipe(\n switchMap(([locale, promocode]) => {\n this.promocode = promocode;\n return from(this.calculatePrices(locale, basket));\n }),\n );\n\n if (this.hotel && this.hotel.Settings.DefaultCountryField) {\n if (!this.customer.isKnownCustomer) {\n this.customer.info.Country = '';\n }\n } else {\n if (!this.customer.isKnownCustomer) {\n this.customer.info.Country = (await this.localeService.getLocale()).substring(3, 5);\n }\n }\n\n const seats = this.basket.bookings[0].Seatings;\n if (seats) {\n for (const item of seats) {\n const midDate = DateHelper.FromUtcDate(item.Date.toString() as UTCDateString);\n const month = DateHelper.getTranslatedMonth(midDate.getMonth());\n item.day = midDate.getDate().toString();\n item.month = month;\n item.year = midDate.getFullYear().toString();\n item.Time = DateHelper.getTimeFromUtcDate(item.Date.toString() as UTCDateTimeString);\n }\n }\n\n const tempLogo = this.applicationState.ApplicationLogo;\n\n if (tempLogo) {\n this.logo = tempLogo;\n }\n\n this.contentDialogHeader = this.applicationState.ApplicationColor;\n\n this.applicationState.RemoveCheckoutButton = true;\n }\n\n ngOnDestroy(): void {\n this.applicationState.RemoveCheckoutButton = false;\n }\n\n async onFormSubmit(f: NgForm, info: CustomerInfo, information: BookingInformation) {\n try {\n if (this.calculatedCancellationFee && this.useCancelationInsurance) {\n information.CancelationInsurance = this.calculatedCancellationFee;\n }\n let isValid = true;\n Object.keys(f.form.controls).forEach((key) => {\n const control = f.form.get(key);\n if (control) {\n if (!control.valid && !control.disabled) {\n control.markAsTouched();\n isValid = false;\n }\n }\n });\n if (isValid) {\n if (!this.isSubmitting) {\n const basket = this.getBasket();\n if (!this.customer.isKnownCustomer) {\n this.customerService.updateInfo(info);\n }\n this.basketService.set({ ...basket });\n this.isSubmitting = true;\n await this.loader.using(\n async () => {\n try {\n const isGiftcardReservation = basket.bookings[0].Giftcards && basket.bookings[0].Giftcards.length !== 0;\n\n if (isGiftcardReservation) {\n const response = await this.bookingService.createGiftcardReservation(\n information.Bookings[0].GiftCard,\n info,\n );\n\n if (response && this.applicationState.UseNetAxept) {\n this.applicationState.GiftcardPayment = response as string;\n this.applicationState.Origin = OriginEnum.GiftCard;\n await this.paymentService.startupPayment();\n return;\n } else if (response && this.applicationState.UseNetsEasy) {\n this.applicationState.Origin = OriginEnum.GiftCard;\n await this.paymentService.startupPayment();\n return;\n } else {\n throw new Error(`Payment could not be created`);\n }\n }\n\n const locale = await this.localeService.getLocale();\n const hotel = await this.hotelService.GetECommerceDepartmentInformation(\n basket.params.hotelCode,\n locale,\n );\n\n let giftcardPayment = 0;\n if (this.giftcardInformation) {\n giftcardPayment = this.giftcardInformation.Amount;\n }\n let reservation = await this.bookingService.createReservation(\n locale,\n hotel,\n this.promocode,\n { ...this.customerService.getCustomer(), Info: info },\n information,\n this.needSubscribe,\n this.useCancelationInsurance,\n this.comment,\n this.customer.isKnownCustomer,\n giftcardPayment,\n );\n await this.trackingService.ecommerceBeginCheckoutFromReservation(reservation);\n if (this.giftcardInformation) {\n reservation = this.subtractGiftcard(reservation);\n }\n if (\n reservation &&\n reservation.payment.isPaymentEnabled &&\n reservation.PaymentFlowToUse !== PaymentFlowEnum.NoPayment &&\n reservation.PaymentDue > 0\n ) {\n this.bookingService.bookingInformation.set(information);\n if (this.giftcardInformation) {\n await this.paymentService.startupPayment(this.giftcardInformation.Number);\n } else {\n // this will not send a notification, but prepare the notification when payment completes\n // this is so Spectra.API can send the notification if callback is not called\n await this.bookingService.sendNotification(information, locale, true, true);\n await this.paymentService.startupPayment();\n }\n } else {\n\n if (this.giftcardInformation) {\n await this.payAmountWithGiftcard();\n }\n await this.bookingService.sendNotification(information, locale);\n\n await this.bookingService.completePayment(reservation);\n this.basketService.clear();\n this.basketService.basketBadgeNumberSet = '0';\n await this.navigationHelper.continue('/customer', '/reciept');\n }\n } finally {\n this.isSubmitting = false;\n }\n },\n 'LOA_CreatingReservation',\n true,\n );\n } else {\n this.log.warn(`Form submitting was prevented as CreateReservation request is not completed yet.`);\n }\n }\n } catch (e: any) {\n this.log.error('Error when creating reservation', e);\n this.navigationHelper.reset();\n this.navigationHelper.navigateToPage('/payment-failed');\n }\n }\n\n subtractGiftcard(reservation: ReservationType) {\n if (this.giftcardInformation && this.giftcardInformation.Amount > 0) {\n let amount;\n if (this.giftcardInformation.Amount < reservation.PaymentDue) {\n amount = reservation.PaymentDue - this.giftcardInformation.Amount;\n reservation.paidWithGiftcard = this.giftcardInformation.Amount;\n } else {\n amount = 0;\n reservation.paidWithGiftcard = reservation.PaymentDue;\n }\n\n reservation.PaymentDue = amount;\n this.bookingService.updateSessionReservation(reservation);\n const id = Number(reservation.reservationId);\n const model = {\n Amount: reservation.paidWithGiftcard,\n GiftCardNumber: this.giftcardInformation.Number,\n ReservationNumber: id,\n } as GiftcardReservationPayment;\n this.bookingService.updateSessionGiftcard(model);\n }\n\n return reservation;\n }\n\n async payAmountWithGiftcard() {\n const reservation = this.bookingService.getReservationOrFail();\n\n if (this.giftcardInformation && reservation) {\n const id = Number(reservation.reservationId);\n\n const model = {\n Amount: reservation.paidWithGiftcard,\n GiftCardNumber: this.giftcardInformation.Number,\n ReservationNumber: id,\n resGuid: reservation.resGuid,\n currency: reservation.payment.currency,\n } as GiftcardReservationPayment;\n return await this.hotelService.payAmountWithGiftcard(model);\n }\n\n return undefined;\n }\n\n onUseCancelationInsuranceChange(useCancelationInsurance: boolean) {\n this.useCancelationInsurance = useCancelationInsurance;\n }\n\n onNeedSubscribeChange(needSubscribe: boolean) {\n this.needSubscribe = needSubscribe;\n }\n\n onAcceptTermsChange(acceptTerms: boolean) {\n this.acceptTerms = acceptTerms;\n }\n\n onCommentChange(comment: string) {\n this.comment = comment;\n }\n\n onRepeatEmailChange(email: string) {\n if (this.customer.info.Email === email) {\n this.repeatEmailvalid = true;\n } else {\n this.repeatEmailvalid = false;\n }\n }\n\n onShowTermsClick(terms: string, e: Event) {\n e.preventDefault();\n e.stopPropagation();\n if (!this.messageHotelTermsTempalte) {\n throw new Error(`messageHotelTermsTempalte must be defined`);\n }\n this.applicationState.stopScrolling(true);\n const message = this.messenger.show(\n this.messageHotelTermsTempalte,\n {\n html: terms,\n accept: () => {\n this.applicationState.stopScrolling(false);\n this.acceptTerms = true;\n message.data.close();\n },\n close: () => {\n this.applicationState.stopScrolling(false);\n this.messenger.close(message);\n },\n },\n () => {\n this.applicationState.stopScrolling(false);\n message.data.close();\n },\n );\n }\n\n async getGiftcardInformation(code: string) {\n const res = await this.bookingService.getGiftcardInformation(code);\n\n return res;\n }\n\n async goBack() {\n await this.navigationHelper.goBack();\n }\n\n async setGiftcardInformationModel(giftcardInformation: GiftcardInformationModel) {\n this.giftcardInformation = giftcardInformation;\n }\n\n private getBasket() {\n if (!this.basket) {\n throw new Error('Basket must exist');\n }\n return this.basket;\n }\n\n private async getBasketOrFail() {\n try {\n const basket = this.basketService.get();\n if (!basket) {\n const translation = await LocaleService.LoadTranslations(await this.localeService.getLocale());\n throw new Error(translation.EXC_EmptyBasket);\n }\n if (basket.bookings.length === 0) {\n throw new Error(`Basket must have at least one room`);\n }\n return basket;\n } catch (err) {\n await this.navigationHelper.continue('/customer', '/search');\n throw err;\n }\n }\n\n private async calculatePrices(locale: Locale, basket: Basket) {\n return await this.loader.using(async () => {\n const bookings = await Promise.all(\n basket.bookings.map(async (booking, bookingIndex) => {\n const rate = {} as Rate;\n if (booking.Price && booking.OriginalPrice) {\n rate.Price = booking.Price;\n rate.OriginalPrice = booking.OriginalPrice;\n }\n const addOns: BookingExtraServiceModel[] = booking.AddOns ? [...booking.AddOns] : [];\n\n const guest: CustomerInfo = {\n Address1: '',\n Address2: '',\n City: '',\n Country: '',\n Email: '',\n FirstName: '',\n LastName: '',\n Phone: '',\n ZipCode: '',\n };\n\n const seatings: BookingInformationSeating[] = [];\n\n if (booking.Seatings) {\n for (const item of booking.Seatings) {\n const seating: BookingInformationSeating = {\n Count: item.TicketTotal,\n Name: item.Name,\n PricePerPiece: item.SinglePrice,\n TotalPrice: item.TicketTotal !== undefined ? item.TicketTotal * item.SinglePrice : 0,\n Date: item.Date,\n SeatCode: item.SeatCode,\n Time: item.Time !== null ? item.Time : '',\n SeatRate: item.SeatRate,\n SeatGuest: item.SeatGuest,\n SeatingPlanName: item.SeatingPlanName,\n };\n\n seatings.push(seating);\n }\n }\n\n if (booking.TableSeatings) {\n for (const item of booking.TableSeatings) {\n const table: BookingInformationSeating = {\n Count: item.SeatGuest[0].Count,\n Name: item.Name,\n PricePerPiece: item.SeatGuest[0].Price,\n TotalPrice: item.Total,\n Date: item.Date,\n SeatCode: item.SeatCode,\n Time: item.Time !== null ? item.Time : '',\n SeatRate: item.SeatRate,\n SeatGuest: item.SeatGuest,\n SeatingPlanName: item.SeatingPlanName,\n };\n\n seatings.push(table);\n }\n }\n\n const giftcards: BookingInformationGiftcard[] = [];\n\n if (booking.Giftcards) {\n for (const item of booking.Giftcards) {\n const giftCard: BookingInformationGiftcard = {\n Count: item.Count,\n Name: item.Name,\n PricePerPiece: item.Price,\n TotalPrice: item.TotalPrice,\n Id: item.Id,\n GuestInformation: item.GuestInformation,\n };\n giftcards.push(giftCard);\n }\n }\n const b: BookingInformationBooking = {\n RoomName: booking.RoomName,\n RateName: booking.RateName,\n RoomCode: booking.RoomCode,\n RateCode: booking.RateCode,\n RateDescription: booking.RateDescription,\n HasPromotionForCustomer: rate !== undefined ? rate.HasPromotionForCustomer : false,\n Price: rate ? rate.Price : 0,\n Persons: basket.params.rooms[bookingIndex],\n Guest: guest,\n OriginalPrice: rate ? rate.OriginalPrice : 0,\n AddOns: addOns,\n Seating: booking.Seatings || booking.TableSeatings ? seatings : undefined,\n GiftCard: booking.Giftcards ? giftcards : undefined,\n };\n return b;\n }),\n );\n const hotel = await this.hotelService.GetECommerceDepartmentInformation(basket.params.hotelCode, locale);\n\n const cancellationPolicyFee = Math.max(\n (this.cancellationprotection ? this.cancellationprotection.Percentage / 100 : 0) *\n this.reservationService.GetTotal(bookings, hotel.CancellationPolicyServicesIncluded),\n this.cancellationprotection ? this.cancellationprotection.MinimumAmount : 0 * bookings.length,\n );\n const information: BookingInformation = {\n Bookings: bookings,\n HotelCode: basket.params.hotelCode,\n Arrival: DateHelper.toServerDateFormatString(basket.params.arrival) as UTCDateString,\n Stay: basket.params.stay,\n CancelationInsurance: hotel.UseCancelPolicy ? cancellationPolicyFee : null,\n Total: this.reservationService.GetTotal(bookings),\n };\n return information;\n }, `LOA_Rates`);\n }\n\n private async loadHotel(hotelCode: HotelCodeString) {\n this.log.debug(`CustomerRoute loadHotel(${hotelCode})`);\n return await this.loader.using(async () => {\n return await this.hotelService.GetECommerceDepartmentInformation(hotelCode, await this.localeService.getLocale());\n }, `LOA_HotelInformation`);\n }\n\n private async loadCountries() {\n try {\n return await this.loader.using(async () => {\n return await this.countryService.getCountries();\n }, `LOA_Countries`);\n } catch (err) {\n return [];\n }\n }\n\n private async getCancellationprotection() {\n const res = await this.hotelService.GetCancellationProtection(this.applicationState.CurrentHotelCode);\n if (res) {\n this.cancellationprotection = res;\n }\n }\n}\n\ninterface HotelTermsMessage {\n html: string;\n accept: () => void;\n close: () => void;\n}\n\ninterface GiftcardInformationModel {\n Amount: number;\n Name: string;\n Valid: boolean;\n Number: string;\n}\n","\n
\n
\n {{ 'COM_Back' | t | async }}\n\n

\n {{ 'CUP_BookingOverview' | t | async }}\n

\n \n
\n \n \n \n
\n \n

\n \n {{ 'REP_DateRooms' | t | async }}\n

\n
\n
\n
\n
\n
{{ 'COM_Arrival' | t | async }}
\n
\n {{ basket.params.ArrivalDate }}.\n {{ basket.params.ArrivalMonthName | t | async }}\n {{ basket.params.ArrivalFullYear }}\n
\n
\n
\n
\n
\n
{{ 'COM_Departure' | t | async }}
\n
\n {{ basket.params.DepartueDate }}.\n {{ basket.params.DepartueMonthName | t | async }}\n {{ basket.params.DepartueFullYear }}\n
\n
\n
\n
\n
\n
{{ 'COM_Promocode' | t | async }}
\n
{{ promocode }}
\n
\n
\n
\n
\n\n

\n \n {{ applicationState.RoomsLabel | t | async }}\n

\n
\n
\n
\n
\n
\n
\n {{ applicationState.RoomLabel | t | async }}\n {{ index | char }}\n
\n
{{ booking.RoomName }}
\n
\n
\n
\n
\n
\n
{{ 'COM_TotalGuests' | t | async }}
\n
\n {{ basket.params.rooms[index] | guests | async }}\n
\n
\n
\n
\n
\n
{{ 'COM_Price' | t | async }}
\n
\n {{ booking.OriginalPrice | price | async }}\n {{ booking.Price | price | async }}\n
\n
\n
\n
\n
\n
\n
\n\n \n

\n \n {{ applicationState.EventLabel | t | async }}\n

\n
\n
\n
\n
\n
\n
\n
\n {{ seat.day }}. {{ seat.month | t | async }} {{ seat.year }} - {{ seat.Time }}\n
\n
{{ seat.Name }}
\n
\n
\n
\n
\n
{{ 'COM_TotalGuests' | t | async }}
\n
{{ seat.TicketTotal }}
\n
\n
\n
\n
\n
{{ 'COM_Price' | t | async }}
\n
\n {{ seat.SinglePrice * seat.TicketTotal | price | async }}\n
\n
\n
\n
\n
\n
\n
\n
\n\n \n

\n \n {{ 'SFO_BookTableReservation' | t | async }}\n

\n
\n
\n
\n
\n
\n
\n
\n \n {{ table.Day }}.\n {{ table.translatedMonth | t | async }}\n {{ table.Year }} - {{ table.Time }}\n \n
\n
{{ table.Name }}
\n
\n
\n
\n
\n
{{ 'COM_TotalGuests' | t | async }}
\n
{{ table.SeatGuest[0].Count }}
\n
\n
\n
\n
\n
{{ 'COM_Price' | t | async }}
\n
\n {{ table.Total | price | async }}\n
\n
\n
\n
\n
\n
\n
\n
\n\n \n

\n \n {{ 'APA_Services' | t | async }}\n

\n
\n
\n
\n
\n
\n
\n {{ applicationState.RoomLabel | t | async }}\n {{ bookingIndex | char }}\n
\n
{{ addOn.Name }}
\n
\n
\n
\n
\n
{{ 'COM_Quantity' | t | async }}
\n
{{ addOn.Count }}
\n
\n
\n
\n
\n
{{ 'COM_Price' | t | async }}
\n
{{ addOn.Amount | price | async }}
\n
\n
\n
\n
\n
\n
\n\n \n

\n \n {{ 'SFO_BookGiftcard' | t | async }}\n

\n
\n
\n
\n
\n
\n
\n
\n
{{ gift.Name }}
\n
\n
\n
\n
\n
{{ 'SFO_BookGiftcard' | t | async }}
\n
{{ gift.Count }}
\n
\n
\n
\n
\n
{{ 'COM_Price' | t | async }}
\n
\n {{ gift.TotalPrice | price | async }}\n
\n
\n
\n
\n
\n
\n
\n
\n\n \n

\n \n {{ 'CUP_CancelPolicyHeader' | t | async }}\n

\n
\n

{{ 'CUP_CancelPolicyDesc' | t | async }}

\n
\n \n \n \n
\n
\n
{{ 'COM_Price' | t | async }}
\n
\n {{ information.CancelationInsurance | price | async }}\n
\n
\n
\n
\n\n \n
\n
\n \n
\n
\n
\n {{ 'COM_TotalPrice' | t | async }}\n
\n
\n {{\n information.Total + (useCancelationInsurance ? information.CancelationInsurance : 0)\n | price\n | async\n }}\n
\n
\n
\n
\n
\n
\n\n
\n
\n \n \n
\n
\n {{ 'CUP_BookingOverviewToPay' | t | async }}\n
\n
\n {{\n information.Total +\n (useCancelationInsurance ? information.CancelationInsurance : 0) -\n (giftcardInformation ? giftcardInformation.Amount : 0)\n | price\n | async\n }}\n
\n
\n
\n \n \n information.Total + (useCancelationInsurance ? information.CancelationInsurance : 0)\n \">\n
\n
\n {{ 'CUP_BookingOverviewToPay' | t | async }}\n
\n
{{ 0 | price | async }}
\n
\n
\n
\n
\n \n\n
\n

\n \n {{ 'CUP_Header' | t | async }}\n

\n
\n
\n
\n \n \n
\n {{ 'CUP_FNameReq' | t | async }}\n
\n
\n
\n
\n \n \n
\n {{ 'CUP_LNameReq' | t | async }}\n
\n
\n
\n
\n \n \n
\n {{ 'CUP_AddressReq' | t | async }}\n
\n
\n
\n
\n \n \n
\n {{ 'CUP_ZipCodeReq' | t | async }}\n
\n
\n
\n
\n \n \n
\n {{ 'CUP_CityReq' | t | async }}\n
\n
\n
\n
\n
\n \n \n \n \n \n
\n \n
\n {{ 'CUP_ContryReq' | t | async }}\n
\n
\n
\n
\n
\n
\n \n \n
\n {{ 'CUP_PhoneReq' | t | async }}\n
\n
\n
\n
\n \n \n
\n {{ 'CUP_EmailReq' | t | async }}\n
\n
\n {{ 'CUP_EmailInvalid' | t | async }}\n
\n
\n \n

\n {{ 'CUP_EmailInvalid' | t | async }}\n

\n
\n
\n \n \n \n

\n \n {{ 'CUP_GuestInfo' | t | async }}\n

\n
\n
\n
{{ 'COM_Room' | t | async }} {{ bookingIndex | char }}
\n
\n
\n \n
\n \n \n
\n {{ 'CUP_FNameReq' | t | async }}\n
\n \n
\n
\n \n \n
\n {{ 'CUP_LNameReq' | t | async }}\n
\n \n
\n
\n \n
\n
\n \n \n
\n {{ 'CUP_FPhoneReq' | t | async }}\n
\n
\n
\n
\n \n \n
\n {{ 'CUP_EmailInvalid' | t | async }}\n
\n
\n {{ 'CUP_EmailInvalid' | t | async }}\n
\n
\n
\n
\n \n
\n
\n
\n \n \n \n \n \n
\n
\n
\n
\n
\n
\n
\n \n {{ 'CUP_NeedSubscribe' | t | async }}\n \n
\n
\n \n
\n
\n \n {{ 'CUP_BookNow' | t | async }}\n \n \n {{ 'CUP_BookNow' | t | async }}\n \n
\n
\n \n
\n \n \n
\n \n\n\n\n
\n
\n \n
\n
\n
\n
\n
\n
\n \n {{ 'COM_Close' | t | async }}\n \n \n {{ 'CUP_Accept' | t | async }}\n \n
\n
\n
\n
\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { ApplicationStateService, BasketService, BookingGiftcard } from '../../../core';\nimport { NavigationHelper } from '../../../helpers/navigation-helper';\n\n@Component({\n selector: 'app-giftcarddetails',\n templateUrl: './giftcarddetails.component.html',\n})\nexport class GiftcardDetailsComponent implements OnInit, OnDestroy {\n giftcards: BookingGiftcard[] | undefined;\n useFrom = false;\n useTo = false;\n useMessage = false;\n invalidValues = false;\n\n constructor(\n private basketService: BasketService,\n private navigationHelper: NavigationHelper,\n private applicationState: ApplicationStateService,\n ) {}\n\n async ngOnInit() {\n this.extractGiftcardsFromBasket();\n\n this.useFrom = this.applicationState.UseGiftcardFrom;\n this.useTo = this.applicationState.UseGiftcardTo;\n this.useMessage = this.applicationState.UseGiftcardMessage;\n await this.prepareNavigation();\n }\n\n ngOnDestroy(): void {\n this.navigationHelper.resetNextPage();\n }\n\n async moveNextClicked() {\n const basket = this.basketService.get();\n if (basket) {\n // We allways save giftcards on index 0 in the basket on the bookingarray, just like seatings.\n this.giftcards = basket.bookings[0].Giftcards;\n\n if (this.giftcards) {\n for (const item of this.giftcards) {\n item.TotalPrice = item.Count * item.Price;\n }\n }\n\n this.basketService.set(basket);\n\n await this.navigationHelper.continue('/details', '/customer');\n }\n }\n\n priceChanged(item: BookingGiftcard) {\n if (this.giftcards) {\n const card = this.giftcards.find((x) => x.Id === item.Id);\n if (card && item.Price <= 0) {\n card.Price = 1;\n this.invalidValues = true;\n } else {\n this.invalidValues = false;\n }\n }\n }\n\n extractGiftcardsFromBasket() {\n const basket = this.basketService.get();\n if (basket) {\n // We allways save giftcards on index 0 in the basket on the bookingarray, just like seatings.\n this.giftcards = basket.bookings[0].Giftcards;\n }\n }\n\n async prepareNavigation() {\n await this.navigationHelper.continueMobileNavigationbar(false, true, '/details', '/customer');\n }\n\n async goBack() {\n await this.navigationHelper.goBack();\n }\n}\n","
\n
\n {{ 'COM_Back' | t | async }}\n {{ 'COM_Continue' | t | async }}\n {{ 'COM_Continue' | t | async }}\n\n

\n {{ 'SFO_GiftcardDetails' | t | async }}\n

\n

\n {{ 'SFO_GiftcardDetails' | t | async }}\n

\n\n

\n {{ 'SFO_GiftcardEnterDetails' | t | async }}\n

\n\n \n
\n
\n
\n \n

{{ 'SFO_GiftcardMetaData' | t | async }}

\n
\n
\n
\n
\n

{{ 'COM_Type' | t | async }}: {{ item.Name }}

\n
\n
\n

{{ 'COM_Price' | t | async }}

\n \n
\n
\n

{{ 'SFO_GiftcardAmount' | t | async }}

\n \n
\n
\n
\n
\n
\n
\n\n
\n \n

{{ 'SFO_GiftcardEnterDetails' | t | async }}

\n
\n
\n
\n
\n

{{ 'COM_Type' | t | async }}: {{ item.Name }}

\n
\n
\n

{{ 'SFO_GiftcardTo' | t | async }}

\n \n
\n
\n

{{ 'SFO_GiftcardFrom' | t | async }}

\n \n
\n
\n

{{ 'SFO_GiftcardMessage' | t | async }}

\n \n
\n
\n
\n
\n
\n
\n\n
\n
\n \n {{ 'COM_Continue' | t | async }}\n \n
\n
\n
\n
\n","import { HttpClient } from '@angular/common/http';\nimport { Component, OnDestroy, OnInit, TemplateRef, ViewChild } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { lastValueFrom } from 'rxjs';\nimport { AppQueryParams } from '../../../app.component';\nimport {\n ApplicationStateService,\n BasketQueryParams,\n BasketService,\n BookingGiftcard,\n ConfigService,\n GiftCardGuestInformation,\n HotelService,\n Loader,\n RateCodeString,\n RoomCodeString,\n SearchParams,\n} from '../../../core';\nimport { NavigationHelper } from '../../../helpers/navigation-helper';\nimport { Messenger } from '../../../modules/messenger';\nimport { SearchComponent } from '../../search/search.component';\n\n@Component({\n selector: 'app-giftcard',\n templateUrl: './giftcard.component.html',\n})\nexport class GiftcardComponent implements OnInit, OnDestroy {\n @ViewChild('messageHotelTermsTempalte', { static: false })\n messageHotelTermsTempalte: TemplateRef | undefined;\n\n isDataAvailable = false;\n data: GiftCardProductsForSale[] | undefined;\n basket = this.getBasket(this.route.snapshot.queryParams as AppQueryParams);\n giftcardToBasketArray: BookingGiftcard[] = [];\n continueActive = false;\n giftcardConfiguration: GiftCardConfiguration | undefined;\n\n constructor(\n private applicationState: ApplicationStateService,\n private http: HttpClient,\n private messenger: Messenger,\n private loader: Loader,\n private configService: ConfigService,\n private basketService: BasketService,\n private route: ActivatedRoute,\n private navigationHelper: NavigationHelper,\n private hotelService: HotelService,\n ) {}\n\n async ngOnInit() {\n await this.canUseModule();\n document.body.classList.remove('addBackGround');\n document.body.classList.remove('addBackGroundWithAnimation');\n document.body.style.backgroundImage = '';\n\n await this.getCardInfos()\n .then((x) => (this.data = x))\n .then(() => (this.isDataAvailable = true));\n\n await this.buildSelectedCards();\n }\n\n ngOnDestroy(): void {\n this.navigationHelper.resetNextPage();\n }\n\n async canUseModule() {\n await this.hotelService.BuildApplicationState();\n\n if (!this.applicationState.UseGiftcard) {\n await this.navigationHelper.navigateToPage('/landing-page');\n }\n }\n\n async buildSelectedCards() {\n if (\n this.basket.bookings.length !== 0 &&\n this.basket.bookings[0].Giftcards !== undefined &&\n this.basket.bookings[0].Giftcards.length !== 0 &&\n this.data !== undefined\n ) {\n for (const card of this.basket.bookings[0].Giftcards) {\n const item = this.data.find((x: GiftCardProductsForSale) => x.Id === card.Id);\n\n if (item !== undefined) {\n item.Selected = true;\n this.giftcardToBasketArray.push(card);\n this.continueActive = true;\n }\n }\n await this.prepareNavigation();\n }\n }\n\n async getCardInfos() {\n const cards = await this.loader.using(async () => {\n const config = await this.configService.getAppSettings();\n try {\n const data = await lastValueFrom(\n this.http.get(\n `${config.SpectraApiUrl}/api/internal/giftcard/giftcardproductsforsale`,\n {},\n ),\n );\n\n return data;\n } catch (err) {\n return [];\n }\n }, 'LOA_Addons');\n\n return cards;\n }\n\n async clearBasket() {\n await this.goBack();\n }\n\n async getGiftConfiguration() {\n const config = await this.configService.getAppSettings();\n try {\n const data = await lastValueFrom(\n this.http.get(`${config.SpectraApiUrl}/api/internal/giftcard/config`, {}),\n );\n return data;\n } catch (err) {\n return undefined;\n }\n }\n\n async giftcardClicked(giftcard: GiftCardProductsForSale) {\n if (giftcard.Selected) {\n giftcard.Selected = false;\n if (this.basket.bookings[0].Giftcards) {\n const cards = this.basket.bookings[0].Giftcards.filter((x: BookingGiftcard) => x.Id !== giftcard.Id);\n\n this.basket.bookings[0].Giftcards = cards;\n\n if (this.basket.bookings[0].Giftcards.length === 0) {\n this.continueActive = false;\n }\n\n this.giftcardToBasketArray = this.basket.bookings[0].Giftcards;\n\n this.basketService.set(this.basket);\n }\n } else {\n if (this.messageHotelTermsTempalte !== undefined) {\n this.applicationState.stopScrolling(true);\n const message = this.messenger.show(\n this.messageHotelTermsTempalte,\n {\n count: 1,\n name: giftcard.Name,\n accept: async () => {\n if (this.data) {\n const item = this.data.filter((y) => y.Id === giftcard.Id)[0];\n\n if (item.Selected) {\n item.Selected = false;\n return;\n }\n\n item.Selected = true;\n }\n\n let giftcardCounter = 0;\n\n if (message.data.count < 1) {\n message.data.count = 1;\n }\n if (message.data.count > 50) {\n message.data.count = 50;\n }\n\n while (giftcardCounter < message.data.count) {\n await this.addGiftcardToBasket(giftcard);\n\n giftcardCounter = giftcardCounter + 1;\n }\n\n this.messenger.close(message);\n this.applicationState.stopScrolling(false);\n },\n close: () => {\n this.applicationState.stopScrolling(false);\n this.messenger.close(message);\n },\n },\n () => {\n this.applicationState.stopScrolling(false);\n message.data.close();\n },\n );\n }\n }\n }\n\n async addGiftcardToBasket(giftcard: GiftCardProductsForSale) {\n const guestInformation = {\n FromName: '',\n GiftcardMessage: '',\n ToName: '',\n } as GiftCardGuestInformation;\n\n const res = await this.getGiftConfiguration();\n\n const giftcardConfiguration = {} as GiftCardConfiguration;\n\n if (res !== undefined) {\n giftcardConfiguration.SendPDF = res.SendPDF;\n giftcardConfiguration.PdfTemplateContent = res.PdfTemplateContent;\n giftcardConfiguration.PdfTemplateStyling = res.PdfTemplateStyling;\n }\n\n const giftcardToBasket = {\n Id: giftcard.Id,\n Name: giftcard.Name,\n Price: giftcard.Price,\n TotalPrice: 0, // Not yet calculated\n Count: 1, // Count is allways 1\n GuestInformation: guestInformation,\n GiftConfiguration: giftcardConfiguration,\n CustomPrice: giftcard.Price === 0 ? true : false,\n } as BookingGiftcard;\n\n this.giftcardToBasketArray.push(giftcardToBasket);\n\n this.basket.bookings[0] = {\n HasPromotionForCustomer: false,\n RateCode: '' as RateCodeString,\n RateName: '',\n RoomCode: '' as RoomCodeString,\n RoomName: '',\n RateDescription: '',\n Giftcards: this.giftcardToBasketArray,\n ConferenceRateCode: '',\n ConferenceRoomCode: '',\n Price: undefined,\n OriginalPrice: undefined,\n };\n\n this.basketService.set(this.basket);\n this.continueActive = true;\n await this.prepareNavigation();\n }\n\n async prepareNavigation() {\n await this.navigationHelper.continueMobileNavigationbar(false, true, '/giftcard', '/details');\n }\n\n async next() {\n window.scroll(0, 0);\n await this.navigationHelper.continue('/giftcard', '/details');\n }\n\n async goBack() {\n await this.navigationHelper.goBack(true);\n }\n\n mouseEnter(card: GiftCardProductsForSale) {\n if (card.Description !== undefined && card.Description !== '') {\n card.ShowDescription = true;\n }\n }\n\n mouseLeave(card: GiftCardProductsForSale) {\n card.ShowDescription = false;\n }\n\n private getBasket(queryParams: Partial) {\n const hotelCode = SearchComponent.ParseHotelCode(queryParams);\n const arrival = new Date();\n const stay = 1;\n let rooms = SearchComponent.ParseRooms(queryParams);\n const single = SearchComponent.ParseSingle(queryParams);\n if (rooms === undefined) {\n rooms = [];\n }\n if (hotelCode && arrival && stay && rooms) {\n const params: SearchParams = {\n hotelCode,\n arrival,\n stay,\n rooms,\n single,\n ArrivalDate: 0,\n ArrivalFullYear: 0,\n ArrivalMonthName: '',\n DepartueDate: 0,\n DepartueFullYear: 0,\n DepartueMonthName: '',\n BookingFlow: 1,\n RateCode: '',\n ConferenceRoomCode: '',\n };\n return this.basketService.create(params);\n } else {\n const basket = this.basketService.get();\n if (basket) {\n return basket;\n } else {\n throw new Error('Basket must not be empty');\n }\n }\n }\n}\n\nexport interface GiftCardProductsForSale {\n Id: number;\n Name: string;\n Description: string;\n ImageUrl: string;\n Date: string;\n Price: number;\n Selected: boolean;\n ShowDescription: boolean;\n}\n\nexport interface GiftCardConfiguration {\n SendPDF: boolean;\n PdfTemplateStyling: string;\n PdfTemplateContent: string;\n}\n\nexport interface SelectedGiftcardModel {\n count: number;\n name: string;\n accept: (model: SelectedGiftcardModel) => void;\n close: () => void;\n}\n","
\n
\n {{ 'COM_Back' | t | async }}\n {{ 'COM_Continue' | t | async }}\n {{ 'COM_Continue' | t | async }}\n\n

\n {{ 'SFO_ChooseGiftcard' | t | async }}\n

\n

\n {{ 'SFO_ChooseGiftcard' | t | async }}\n

\n\n

\n {{ 'SFO_ChooseGiftcardDescription' | t | async }}\n

\n\n \n
\n \n \n \n \n {{ 'COM_Price' | t | async }}\n {{ card.item.Price | price | async }}\n \n
\n
\n
\n \n \n

\n
\n\n \n \n \n \n \n

\n {{ 'RPA_Image' | t | async }}\n

\n
\n
\n
\n
\n
\n \n {{ 'COM_AddToBasket' | t | async }}\n \n \n {{ 'COM_AddedToBasket' | t | async }}\n \n
\n
\n \n
\n

{{ card.item.Name }}

\n
\n \n
\n
\n

\n \n

\n
\n \n \n \n
\n
\n \n
\n
\n\n\n\n
\n
\n {{ message.name }}\n
\n
\n
\n

{{ 'SFO_NumberOfGiftcards' | t | async }}

\n
\n \n
\n
\n
\n \n {{ 'PAR_Cancel' | t | async }}\n \n \n {{ 'COM_Continue' | t | async }}\n \n
\n
\n
\n
\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { DateHelper } from 'src/app/helpers';\nimport {\n ApplicationStateService,\n BasketService,\n HotelCodeString,\n HotelService,\n Loader,\n LocaleService,\n PromotionService,\n} from '../../core';\nimport { NavigationHelper } from '../../helpers/navigation-helper';\nimport { DesignConfiguration } from '../../shared/design/design-configuration';\n\n@Component({\n selector: 'app-landing-page',\n templateUrl: './landing-page.component.html',\n})\nexport class LandingPageComponent implements OnInit, OnDestroy {\n tiles: LandingPageModel[] | undefined;\n paramsSubscription: Subscription | undefined;\n picker: HotelPicker[] | undefined;\n\n constructor(\n private navigationHelper: NavigationHelper,\n private applicationState: ApplicationStateService,\n private loader: Loader,\n private locale: LocaleService,\n private basketService: BasketService,\n private activatedRoute: ActivatedRoute,\n private hotelService: HotelService,\n private designconfig: DesignConfiguration,\n private promotionService: PromotionService,\n ) {}\n\n async ngOnInit() {\n this.navigationHelper.reset();\n\n this.basketService.clear();\n this.basketService.basketBadgeNumberSet = '0';\n\n this.catchUrlParams();\n\n await this.buildHotelPickerData();\n await this.designconfig.addPageBackground();\n await this.buildLandingpageTiles();\n }\n\n ngOnDestroy(): void {\n if (this.paramsSubscription) {\n this.paramsSubscription.unsubscribe();\n }\n }\n\n catchUrlParams() {\n this.paramsSubscription = this.activatedRoute.params.subscribe((params) => {\n const hotelCode = params['HotelCode'];\n if (hotelCode) {\n this.applicationState.CurrentHotelCode = hotelCode;\n }\n });\n }\n\n async buildLandingpageTiles() {\n await this.loader.using(\n async () => {\n this.tiles = [] as LandingPageModel[];\n const res = await this.hotelService.GetECommerceDepartmentInformation(\n this.applicationState.CurrentHotelCode,\n await this.locale.getLocale(),\n );\n\n if (res && res.Settings.UseSpectraOnlineBooking) {\n const rooms = {\n tileID: moduleType.bookRooms,\n active: true,\n lable: 'COM_Rooms',\n sortIndex: res.Settings.SortIndexSpectraOnlineBooking,\n } as LandingPageModel;\n const packages = {\n tileID: moduleType.bookPackages,\n active: true,\n lable: 'COM_Package',\n sortIndex: res.Settings.SortIndexSpectraOnlineBooking,\n } as LandingPageModel;\n\n this.tiles.push(rooms);\n this.tiles.push(packages);\n }\n\n if (res.Settings.UseSeating) {\n // Add seating tile if any is available and if seatings are active on the platform\n const anySeatings = await this.hotelService.IsSeatingsAvailable(this.applicationState.CurrentHotelCode);\n if (anySeatings) {\n const seatings = {\n tileID: moduleType.seatings,\n active: true,\n lable: this.applicationState.EventLabel,\n sortIndex: res.Settings.SortIndexSeating,\n } as LandingPageModel;\n this.tiles.push(seatings);\n }\n }\n\n if (res.Settings.UseTableReservation) {\n // Add seating tile if any is available and if seatings are active on the platform\n const anySeatings = await this.hotelService.IsTablesAvailable(this.applicationState.CurrentHotelCode);\n if (anySeatings) {\n const tableReservation = {\n tileID: moduleType.tableReservation,\n active: true,\n lable: 'COM_TableReservation',\n sortIndex: res.Settings.SortIndexTableReservation,\n } as LandingPageModel;\n this.tiles.push(tableReservation);\n }\n }\n\n if (res && res.Settings.UseGiftcard) {\n const giftCard = {\n tileID: moduleType.giftcard,\n active: true,\n lable: 'SFO_BookGiftcard',\n sortIndex: res.Settings.SortIndexGiftCard,\n } as LandingPageModel;\n this.tiles.push(giftCard);\n }\n\n // if (res && res.Settings.UseConferenceModule) {\n // const conference = { tileID: moduleType.bookConference, active: true, lable: 'COM_Conference' } as LandingPageModel;\n // this.tiles.push(conference);\n // }\n\n this.tiles.sort((a, b) => a.sortIndex - b.sortIndex);\n },\n 'LOA_HotelInformation',\n false,\n );\n }\n\n async navigate(tile: LandingPageModel) {\n document.body.classList.remove('addBackGround');\n document.body.classList.remove('addBackGroundWithAnimation');\n document.body.style.backgroundImage = '';\n\n switch (tile.tileID) {\n case moduleType.giftcard: {\n await this.navigationHelper.continue('/landing-page', '/giftcard', {\n queryParams: { HotelCode: this.applicationState.CurrentHotelCode },\n });\n window.scrollTo({ left: 0, top: 0, behavior: 'smooth' });\n break;\n }\n // case moduleType.bookConference: {\n // await this.navigationHelper.continue('/landing-page', '/conference-search');\n // window.scrollTo({ left: 0, top: 0, behavior: 'smooth' });\n // break;\n // }\n case moduleType.bookPackages: {\n await this.navigationHelper.continue('/landing-page', '/search', {\n queryParams: {\n HotelCode: this.applicationState.CurrentHotelCode,\n BookingFlow: 2,\n Single: true,\n },\n });\n window.scrollTo({ left: 0, top: 0, behavior: 'smooth' });\n break;\n }\n case moduleType.bookRooms: {\n await this.navigationHelper.continue('/landing-page', '/search', {\n queryParams: {\n HotelCode: this.applicationState.CurrentHotelCode,\n BookingFlow: 1,\n Single: true,\n },\n });\n window.scrollTo({ left: 0, top: 0, behavior: 'smooth' });\n break;\n }\n case moduleType.seatings: {\n await this.navigationHelper.continue('/landing-page', '/seating/1', {\n queryParams: {\n HotelCode: this.applicationState.CurrentHotelCode,\n ArrivalDate: DateHelper.toServerDateFormatString(new Date()),\n LengthOfStay: 30,\n },\n });\n window.scrollTo({ left: 0, top: 0, behavior: 'smooth' });\n break;\n }\n case moduleType.tableReservation: {\n await this.navigationHelper.continue('/landing-page', '/guests');\n window.scrollTo({ left: 0, top: 0, behavior: 'smooth' });\n break;\n }\n }\n }\n\n async buildHotelPickerData() {\n await this.loader.using(\n async () => {\n const hotels = await this.hotelService.GetECommerceDepartmentsInformation();\n\n this.picker = [] as HotelPicker[];\n for (const hotel of hotels) {\n let selected = false;\n if (!this.applicationState.CurrentHotelCode) {\n this.applicationState.CurrentHotelCode = hotel.Code;\n }\n\n if (hotel.Code === this.applicationState.CurrentHotelCode) {\n selected = true;\n }\n\n const res = {\n hotelImage: hotel.Image === null ? '' : hotel.Image,\n name: hotel.Name,\n selected,\n hotelCode: hotel.Code,\n } as HotelPicker;\n this.picker.push(res);\n }\n },\n 'LOA_HotelInformation',\n false,\n );\n }\n\n async chooseHotel(model: HotelPicker) {\n if (model.hotelCode === this.applicationState.CurrentHotelCode) {\n return;\n }\n\n this.promotionService.promocode$.next(undefined);\n\n await this.loader.using(\n async () => {\n this.applicationState.CurrentHotelCode = model.hotelCode as HotelCodeString;\n await this.designconfig.applyTheme();\n await this.designconfig.addPageBackground();\n this.deselectAllHotels();\n model.selected = true;\n await this.buildLandingpageTiles();\n await this.designconfig.applyHotelChange(this.applicationState.CurrentHotelCode);\n },\n 'LOA_HotelInformation',\n true,\n );\n }\n\n deselectAllHotels() {\n if (this.picker !== undefined) {\n this.picker\n .filter((x) => x.selected)\n .forEach((x) => {\n x.selected = false;\n });\n }\n }\n}\n\nenum moduleType {\n giftcard = '21be5c1e-3b0c-4d90-b0a1-62d4ba9733a0',\n bookRooms = 'd850acd6-cde8-41a9-8a86-3cf46417e74a',\n bookPackages = '04a2116c-7dcd-45aa-b4ed-ec40aeaaae55',\n tableReservation = '0a3e2328-af86-4ac8-b66d-1e8ec0e888d6',\n bookConference = 'c449fd68-481a-47c4-a381-271345f9cb32',\n seatings = 'cf613ac1-73eb-47cc-9d74-83d15e18aba9',\n}\n\nexport interface LandingPageModel {\n tileID: moduleType;\n active: boolean;\n lable: string;\n sortIndex: number;\n}\n\nexport interface HotelPicker {\n hotelImage: string;\n name: string;\n selected: boolean;\n hotelCode: string;\n}\n","
\n
1\">\n
\n

{{ applicationState.HotelLabel | t | async }}

\n
\n
\n
\n
\n
\n
\n \n \n

{{ hotel.name }}

\n
\n
\n \n \n \n

{{ hotel.name }}

\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n \n \n

{{ hotel.name }}

\n
\n
\n \n \n \n

{{ hotel.name }}

\n
\n
\n
\n \n \n \n \n \n\n
1 ? 'landing-content-multi' : 'landing-content-single' }}\">\n
\n
\n
\n
\n
\n
\n \n\n \n\n \n\n \n\n \n\n \n\n

{{ tile.lable | t | async }}

\n
\n
\n
\n
\n \n\n \n\n \n\n \n\n \n\n \n\n

{{ tile.lable | t | async }}

\n
\n
\n
\n
\n
\n
\n
\n\n","import { Component, OnInit } from '@angular/core';\nimport { LogService } from '@com/logging';\nimport { ApplicationStateService, OriginEnum } from '../../core';\nimport { BookingService } from '../../core/services/booking.service';\nimport { NavigationHelper } from '../../helpers/navigation-helper';\n\n@Component({\n selector: 'app-payment-failed',\n templateUrl: './payment-failed.component.html',\n})\nexport class PaymentFailedComponent implements OnInit {\n constructor(\n private log: LogService,\n private navigationHelper: NavigationHelper,\n private bookingService: BookingService,\n private applicationState: ApplicationStateService,\n ) {}\n\n async ngOnInit() {\n this.log.debug(`PaymentFailedRoute ngOnInit()`);\n window.scrollTo(0, 0);\n\n if (this.applicationState.Origin !== OriginEnum.PaymentLink) {\n await this.cancelReservation();\n }\n }\n\n async cancelReservation() {\n const res = this.bookingService.getReservationOrFail();\n\n this.log.warn(\n `Reservation with reservationId ${res.reservationId} was cancelled due to an error when creating reservation or creating payment!`,\n );\n\n await this.bookingService.CancelReservation(res.reservationId);\n }\n\n async next() {\n await this.navigationHelper.continue('/payment-failed', '/customer');\n }\n}\n","
\n
\n
\n \n
\n
\n
\n

{{ 'PFP_Header' | t | async }}

\n

{{ 'PFP_Info' | t | async }}

\n
\n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n \n
\n","import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core';\nimport { NgForm } from '@angular/forms';\nimport { ActivatedRoute, ParamMap, Params, Router } from '@angular/router';\nimport { LogService } from '@com/logging';\nimport { of } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport {\n ApplicationStateService,\n BookingService,\n HotelCodeString,\n HotelService,\n HotelType,\n Loader,\n LocaleService,\n OriginEnum,\n RoomCodeString,\n} from 'src/app/core';\nimport { Messenger } from 'src/app/modules/messenger';\nimport { Step, StepList } from 'src/app/modules/step-list';\nimport { PaymentFlowEnum, PaymentService, ReservationType } from '../../core/modules/payment';\nimport { GiftcardInformationModel } from '../../components/giftcard-form/giftcard-form.component';\nimport { GiftcardReservationPayment } from '../../core/modules/hotel/data-hotel.service';\nimport { NavigationHelper } from '../../helpers/navigation-helper';\n\n@Component({\n selector: 'app-payment-link',\n templateUrl: './payment-link.component.html',\n})\nexport class PaymentLinkComponent implements OnInit {\n logo: string | undefined;\n contentDialogHeader: string | undefined;\n acceptTerms = false;\n hotel: HotelType | undefined;\n reservation: ReservationType | undefined;\n showRoomName = false;\n showServiceName = false;\n hasRooms = false;\n paymentComplete = false;\n paymentNotAvailable = false;\n hasSeatings = false;\n hasExtraservices = false;\n currency = '';\n giftcardInformation: GiftcardInformationModel | undefined;\n math = Math;\n hotelName: string | undefined;\n\n @ViewChild('messageHotelTermsTempalte', { static: false })\n messageHotelTermsTempalte: TemplateRef | undefined;\n\n constructor(\n private log: LogService,\n private router: Router,\n private loader: Loader,\n private stepList: StepList,\n private route: ActivatedRoute,\n private localeService: LocaleService,\n private bookingService: BookingService,\n private messenger: Messenger,\n private hotelService: HotelService,\n private applicationState: ApplicationStateService,\n private navigationHelper: NavigationHelper,\n private paymentService: PaymentService,\n ) {}\n\n async ngOnInit() {\n await new Promise((resolve) => setTimeout(() => resolve(), 0)); // wait for router to initialize\n\n if (window.top?.location) {\n this.redicrectToRecieptParent(window.location, window.top.location);\n }\n\n this.applicationState.PaymentlinkCallBack = 'true';\n\n this.log.debug('PaymentLinkRoute ngOnInit()');\n window.scrollTo(0, 0);\n\n this.applicationState.Origin = OriginEnum.PaymentLink;\n\n // language param\n this.route.paramMap.pipe(switchMap((params: ParamMap) => of(params.get('language')))).subscribe(async (lang) => {\n if (lang) {\n await this.localeService.setLocale(LocaleService.ToLocale(lang as string));\n }\n });\n\n // language param\n this.route.paramMap.pipe(switchMap((params: ParamMap) => of(params.get('language')))).subscribe(async (lang) => {\n if (lang) {\n await this.localeService.setLocale(LocaleService.ToLocale(lang as string));\n }\n });\n\n // reservarId param\n this.route.paramMap.pipe(switchMap((params: ParamMap) => of(params.get('reservationId')))).subscribe((resId) => {\n this.applicationState.ReservationId = resId as string;\n });\n\n await this.loadReservation(this.applicationState.ReservationId);\n\n const hotelInfo = await this.hotelService.GetECommerceDepartmentInformation(\n this.applicationState.CurrentHotelCode,\n await this.localeService.getLocale(),\n );\n\n if (hotelInfo) {\n this.hotelName = hotelInfo.Name;\n }\n }\n\n redicrectToRecieptParent(location: any, topLocation: any) {\n if (location !== topLocation) {\n if (window.top?.location) {\n window.top.location = location;\n }\n }\n }\n\n async loadReservation(reservationId: string) {\n try {\n this.stepList.set(Step.PaymentLink);\n this.log.debug(`PaymentLinkRoute loadReservation() start loading`);\n this.reservation = await this.bookingService.getReservation(reservationId, await this.localeService.getLocale());\n\n this.hotel = this.hotel = await this.loadHotel(this.reservation.HotelCode as HotelCodeString);\n this.applicationState.CurrentHotelCode = this.hotel.Code;\n\n const queryParams: Params = {\n HotelCode: this.applicationState.CurrentHotelCode,\n };\n\n await this.router.navigate([], {\n relativeTo: this.route,\n queryParams,\n queryParamsHandling: 'merge',\n });\n\n await this.hotelService.BuildApplicationState();\n this.currency = this.applicationState.HotelCurrency;\n if (this.reservation.rooms[0]) {\n this.reservation.rooms.forEach((item) => {\n if (!this.hasExtraservices) {\n this.hasExtraservices = item.services.filter((x) => x.serviceType === 'EXTRA').length !== 0 ? true : false;\n }\n\n if (!this.hasSeatings) {\n this.hasSeatings = item.services.filter((x) => x.serviceType === 'SEATING').length !== 0 ? true : false;\n }\n\n if (item.roomCode === ('Deltagere' as RoomCodeString)) {\n this.hasRooms = false;\n } else {\n this.hasRooms = true;\n }\n });\n } else {\n if (this.reservation.services) {\n this.reservation.services.forEach((item) => {\n if (!this.hasSeatings) {\n this.hasSeatings = item.serviceType === 'SEATING' ? true : false;\n }\n if (!this.hasExtraservices) {\n this.hasExtraservices = item.serviceType === 'EXTRA' ? true : false;\n }\n });\n }\n }\n\n this.log.debug(`PaymentLinkRoute loadReservation() loaded`);\n this.showRoomName = this.showRoomNameIfNotSameAsBookerName(this.reservation);\n this.showServiceName = this.showServiceNameIfServicesAdded(this.reservation);\n this.paymentComplete = this.reservation.PaymentDue === 0;\n this.paymentNotAvailable = this.reservation.PaymentFlowToUse === PaymentFlowEnum.NoPayment;\n if (this.hotel.Settings.CustomColor) {\n this.applicationState.ApplicationColor = this.hotel.Settings.CustomColor;\n }\n const tempLogo = this.applicationState.ApplicationLogo;\n\n if (tempLogo) {\n this.logo = tempLogo;\n }\n this.contentDialogHeader = this.applicationState.ApplicationColor;\n } catch (e) {\n this.log.error('The following exception has been thrown', e);\n await this.router.navigate(['/payment-failed']);\n }\n }\n\n showRoomNameIfNotSameAsBookerName(res?: ReservationType) {\n if (res) {\n return res.rooms.some((room) => {\n if (room.guestName !== null) {\n return room.guestName.toLowerCase() !== res.bookingAdmin.lastName.toLowerCase();\n }\n return false;\n });\n }\n return false;\n }\n\n showServiceNameIfServicesAdded(res: ReservationType) {\n return (\n (res.services != null && res.services.length > 0) ||\n res.rooms.some((room) => {\n return room.services != null && room.services.length > 0;\n })\n );\n }\n\n onAcceptTermsChange(acceptTerms: boolean) {\n this.log.debug(`PaymentLinkRoute onAcceptTermsChange(${acceptTerms})`);\n this.acceptTerms = acceptTerms;\n }\n\n onShowTermsClick(terms: string, e: Event) {\n e.preventDefault();\n e.stopPropagation();\n\n if (!this.messageHotelTermsTempalte) {\n throw new Error('messageHotelTermsTempalte must be defined');\n }\n const message = this.messenger.show(\n this.messageHotelTermsTempalte,\n {\n html: terms,\n accept: () => {\n this.acceptTerms = true;\n message.data.close();\n },\n close: () => {\n this.messenger.close(message);\n },\n },\n () => {\n message.data.close();\n },\n );\n }\n\n async onFormSubmit(f: NgForm) {\n this.log.debug('PaymentLinkRoute onFormSubmit()');\n let isValid = true;\n Object.keys(f.form.controls).forEach((key) => {\n const control = f.form.get(key);\n if (control) {\n if (!control.valid && !control.disabled) {\n control.markAsTouched();\n isValid = false;\n }\n }\n });\n\n if (isValid && this.reservation) {\n if (this.giftcardInformation) {\n this.reservation = this.subtractGiftcard(this.reservation, this.giftcardInformation);\n\n if (this.reservation.PaymentDue > 0) {\n await this.paymentService.startupPayment(this.giftcardInformation.Number);\n } else {\n await this.payAmountWithGiftcard(this.reservation);\n await this.bookingService.completePayment(this.reservation);\n await this.navigationHelper.continue('/customer', '/reciept');\n }\n } else {\n await this.paymentService.startupPayment();\n }\n }\n }\n\n async setGiftcardInformationModel(giftcardInformation: GiftcardInformationModel) {\n this.giftcardInformation = giftcardInformation;\n }\n\n subtractGiftcard(reservation: ReservationType, giftcardInformation: GiftcardInformationModel) {\n if (giftcardInformation && giftcardInformation.Amount > 0) {\n let amount;\n if (giftcardInformation.Amount < reservation.PaymentDue) {\n amount = reservation.PaymentDue - giftcardInformation.Amount;\n reservation.paidWithGiftcard = giftcardInformation.Amount;\n } else {\n amount = 0;\n reservation.paidWithGiftcard = reservation.PaymentDue;\n }\n\n reservation.PaymentDue = amount;\n\n const id = Number(reservation.reservationId);\n this.bookingService.updateSessionReservation(reservation);\n const model = {\n resGuid: reservation.resGuid,\n Amount: reservation.paidWithGiftcard,\n GiftCardNumber: giftcardInformation.Number,\n ReservationNumber: id,\n } as GiftcardReservationPayment;\n this.bookingService.updateSessionGiftcard(model);\n }\n\n return reservation;\n }\n\n async payAmountWithGiftcard(reservation: ReservationType) {\n if (this.giftcardInformation && reservation) {\n const id = Number(reservation.reservationId);\n\n const model = {\n Amount: reservation.paidWithGiftcard,\n GiftCardNumber: this.giftcardInformation.Number,\n ReservationNumber: id,\n resGuid: reservation.resGuid,\n currency: reservation.payment.currency,\n } as GiftcardReservationPayment;\n return await this.hotelService.payAmountWithGiftcard(model);\n }\n\n return undefined;\n }\n\n private async loadHotel(hotelCode: HotelCodeString) {\n this.log.debug(`PaymentLinkRoute loadHotel(${hotelCode})`);\n return await this.loader.using(async () => {\n return await this.hotelService.GetECommerceDepartmentInformation(hotelCode, await this.localeService.getLocale());\n }, 'LOA_HotelInformation');\n }\n}\n\ninterface HotelTermsMessage {\n html: string;\n accept: () => void;\n close: () => void;\n}\n","\n
\n \n
\n
\n
\n
\n

\n \n {{ 'CUP_Header' | t | async }}\n

\n
\n
\n
\n
\n
\n
{{ reservation.bookingAdmin.lastName }}
\n
\n
\n
\n
\n
\n
\n
\n

\n \n {{ 'REP_ReservationId' | t | async }}\n

\n
\n {{\n reservation.reservationId\n }}\n
\n
\n
\n
\n\n
\n
\n
\n \n
\n
\n
\n\n
\n
\n
\n\n
\n
\n
\n

\n \n {{ 'COM_TotalPrice' | t | async }}\n

\n
\n
\n
\n
\n
\n
\n {{ reservation.PaymentDue }} {{ currency }}\n
\n
\n {{ math.max(0, reservation.PaymentDue - giftcardInformation.Amount) }} {{ currency }}\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n \n\n
\n \n {{ 'PAL_GoToPayment' | t | async }}\n \n \n {{ 'PAL_GoToPayment' | t | async }}\n \n
\n
\n
\n
\n
\n
\n
\n

\n {{ 'PAL_PaymentNotAvailable' | t | async }}\n

\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n\n
\n

\n \n {{ 'REP_DateRooms' | t | async }}\n

\n
\n
\n
\n
\n
\n
{{ 'COM_Arrival' | t | async }}
\n
{{ reservation.rooms[0].arrival | date | async }}
\n
\n
\n
\n
\n
{{ 'COM_Departure' | t | async }}
\n
{{ reservation.rooms[0].departure | date | async }}
\n
\n
\n
\n
\n
\n\n
\n

\n \n {{ 'COM_Rooms' | t | async }}\n

\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n {{ 'COM_Room' | t | async }} {{ index | char }}\n
\n
{{ room.roomCode }}
\n
\n
\n
\n
\n
{{ 'COM_Price' | t | async }}
\n
{{ room.price }} {{ currency }}
\n
\n
\n
\n
\n
\n
\n
{{ 'REP_Name' | t | async }}
\n
{{ room.guestName }}
\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n

\n \n {{ 'APA_Services' | t | async }}\n

\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
{{ service.count }} x {{ service.serviceCode }}
\n
\n
\n
\n
\n
{{ 'COM_Price' | t | async }}
\n
{{ service.price }} {{ currency }}
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
{{ service.count }} x {{ service.serviceCode }}
\n
\n
\n
\n
\n
{{ 'COM_Price' | t | async }}
\n
{{ service.price }} {{ currency }}
\n
\n
\n
\n
\n
\n
\n
\n\n
\n

\n \n {{ 'SFO_BookEvent' | t | async }}\n

\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n {{ service.count }} x {{ service.serviceCode }} -\n {{ service.ServiceDate }}\n
\n
\n
\n
\n
\n
{{ 'COM_Price' | t | async }}
\n
{{ service.price }} {{ currency }}
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
{{ service.count }} x {{ service.serviceCode }}
\n
\n
\n
\n
\n
{{ 'COM_Price' | t | async }}
\n
{{ service.price }} {{ currency }}
\n
\n
\n
\n
\n
\n
\n
\n\n
0\">\n

\n \n {{ 'CUP_CancelPolicyHeader' | t | async }}\n

\n
\n
\n
\n
\n
\n
{{ 'CUP_CancelPolicyHeader' | t | async }}
\n
\n
\n
\n
\n
{{ 'COM_Price' | t | async }}
\n
{{ reservation.cancellationFee }} {{ currency }}
\n
\n
\n
\n
\n
\n\n
\n \n
\n\n
\n
\n
\n
\n
\n
\n
\n {{ 'COM_TotalPrice' | t | async }}\n
\n
{{ reservation.PaymentDue }} {{ currency }}
\n
\n {{ math.max(0, reservation.PaymentDue - giftcardInformation.Amount) }} {{ currency }}\n
\n
\n
\n
\n
\n
\n\n \n
\n\n
\n
\n
\n
\n
{{ 'PAL_PaymentComplete' | t | async }} {{ hotelName }}
\n
\n
\n
\n
\n
\n \n
\n\n\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n \n {{ 'COM_Close' | t | async }}\n \n \n {{ 'CUP_Accept' | t | async }}\n \n
\n
\n
\n
\n
\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport {\n ApplicationStateService,\n Basket,\n BasketService,\n BookingService,\n HotelService,\n Loader,\n LocaleService,\n} from 'src/app/core';\n\nimport { BookingInformation, GiftcardPaymentModel, ReservationType } from 'src/app/core/modules/payment';\nimport { Guid, GuidHelper } from '../../helpers';\nimport { NavigationHelper } from '../../helpers/navigation-helper';\nimport { PaymentFlowEnum } from '../../core/modules/payment';\nimport { ActivatedRoute, Params } from '@angular/router';\n\n@Component({\n selector: 'app-payment',\n templateUrl: './AcceptPayment.component.html',\n})\nexport class AcceptPaymentComponent implements OnInit, OnDestroy {\n private sub: any;\n private qsub: any;\n reservation: ReservationType | undefined;\n currency: string | undefined;\n\n constructor(\n private bookingService: BookingService,\n private basketService: BasketService,\n private loader: Loader,\n private applicationState: ApplicationStateService,\n private navigationHelper: NavigationHelper,\n private localeService: LocaleService,\n private hotelService: HotelService,\n private activatedRoute: ActivatedRoute,\n ) {}\n\n async ngOnInit() {\n window.scrollTo(0, 0);\n const basket = this.basketService.get();\n\n if (\n basket &&\n basket.bookings[0].Giftcards &&\n basket.bookings[0].Giftcards.length !== 0 &&\n this.applicationState.UseNetAxept\n ) {\n await this.ProgressGiftcardAxept(basket);\n } else if (this.applicationState.UseNetAxept) {\n await this.progressAxeptMessage();\n } else if (\n basket &&\n basket.bookings[0].Giftcards &&\n basket.bookings[0].Giftcards.length !== 0 &&\n this.applicationState.UseNetsEasy\n ) {\n const responseModel = {} as PaymentCompletedModel;\n\n this.activatedRoute.queryParams.subscribe((params: Params) => {\n responseModel.paymentId = params['paymentid'];\n });\n\n if (responseModel.paymentId) {\n await this.EasyGiftcardPaymentAccepted(responseModel);\n } else {\n await this.navigationHelper.navigateToPage('/customer');\n }\n } else if (this.applicationState.UseNetsEasy) {\n const responseModel = {} as PaymentCompletedModel;\n let usingPaymentLink = false;\n let resGuid: Guid;\n\n this.activatedRoute.queryParams.subscribe((params: Params) => {\n responseModel.paymentId = params['paymentid'];\n usingPaymentLink = params['origin'] == 'paymentlink';\n resGuid = params['resGuid'];\n if (resGuid && resGuid !== GuidHelper.Empty) {\n this.applicationState.ReservationGuid = resGuid;\n }\n });\n\n if (responseModel.paymentId) {\n await this.EasyPaymentAccepted(responseModel);\n } else if (usingPaymentLink) {\n await this.navigationHelper.navigateToPage(`/payment-link/${this.applicationState.ReservationGuid}`);\n } else {\n const res = this.bookingService.getReservationOrFail();\n await this.bookingService.CancelReservation(res.reservationId);\n\n await this.navigationHelper.navigateToPage('/customer');\n }\n }\n }\n\n ngOnDestroy() {\n if (this.sub && this.qsub) {\n this.sub.unsubscribe();\n this.qsub.unsubscribe();\n }\n }\n\n async ProgressGiftcardAxept(basket: Basket) {\n let authkey;\n let orderId;\n let responseCode;\n const cards = basket.bookings[0].Giftcards;\n\n this.activatedRoute.queryParams.subscribe((params: Params) => {\n authkey = params['transactionId'];\n orderId = params['orderId'];\n responseCode = params['responseCode'];\n });\n\n if (authkey && orderId && cards && responseCode === 'OK') {\n // Payment completed\n this.basketService.basketBadgeNumberSet = '0';\n\n let amount = 0;\n\n cards.forEach((x) => {\n amount += x.TotalPrice;\n });\n\n await this.bookingService.RegisterGiftcardPayment(Number(orderId), authkey as Guid);\n this.applicationState.GiftcardPayment = '';\n\n const reservationType = this.bookingService.buildReservationTypeForGiftcard(\n basket,\n amount,\n `spectraapiorder-${orderId}`,\n );\n\n await this.bookingService.completePayment(reservationType);\n this.basketService.clear();\n\n await this.navigationHelper.navigateToPage('/reciept');\n } else {\n await this.navigationHelper.navigateToPage('/customer');\n }\n }\n\n async EasyPaymentAccepted(netsResponse: PaymentCompletedModel) {\n const res = this.bookingService.getReservationOrFail();\n const giftcard = this.bookingService.getSessionGiftcard();\n\n await this.loader.using(async () => {\n await this.bookingService.registerPayment(\n this.applicationState.CurrentHotelCode,\n res.resGuid!,\n netsResponse.paymentId,\n res.PaymentFlowToUse,\n );\n\n if (giftcard && giftcard.Amount > 0) {\n if (res.resGuid) {\n giftcard.resGuid = res.resGuid;\n giftcard.currency = res.payment.currency;\n await this.hotelService.payAmountWithGiftcard(giftcard);\n }\n }\n\n const bookingInformation = this.bookingService.bookingInformation.get()\n ? this.bookingService.bookingInformation.get()\n : ({\n HotelCode: this.applicationState.CurrentHotelCode,\n } as BookingInformation);\n\n await this.bookingService.sendNotification(bookingInformation, await this.localeService.getLocale());\n\n await this.bookingService.completePayment(res);\n this.basketService.clear();\n\n await this.navigationHelper.navigateToPage('/reciept');\n });\n }\n\n async EasyGiftcardPaymentAccepted(netsResponse: PaymentCompletedModel) {\n await this.loader.using(async () => {\n this.basketService.basketBadgeNumberSet = '0';\n\n const basket = this.basketService.get();\n\n const giftcardPaymentModel = this.bookingService.giftcardEasyInfo.get();\n\n if (giftcardPaymentModel && basket) {\n const model = {\n CurrencyCode: giftcardPaymentModel.GiftcardPaymentModel.CurrencyCode,\n OrderId: giftcardPaymentModel.GiftcardPaymentModel.OrderId,\n PaidAmount: giftcardPaymentModel.GiftcardPaymentModel.PaidAmount,\n } as GiftcardPaymentModel;\n\n await this.bookingService.RegisterGiftcardPayment(Number(model.OrderId), netsResponse.paymentId);\n this.applicationState.GiftcardPayment = '';\n\n const reservationType = this.bookingService.buildReservationTypeForGiftcard(\n basket,\n Number(model.PaidAmount),\n model.OrderId,\n );\n\n await this.bookingService.completePayment(reservationType);\n this.basketService.clear();\n\n await this.navigationHelper.navigateToPage('/reciept');\n }\n });\n }\n async progressAxeptMessage() {\n await this.loader.using(async () => {\n try {\n const url = new URL(window.location.href);\n const res = this.bookingService.getReservationOrFail();\n const giftcard = this.bookingService.getSessionGiftcard();\n const transactionId = url.searchParams.get('transactionId');\n const responseCode = url.searchParams.get('responseCode');\n const paymentFlow = url.searchParams.get('paymentFlow');\n const isPaymentLink = this.applicationState.PaymentlinkCallBack === 'false' || undefined ? false : true;\n\n // Payment completed\n if (transactionId && res && paymentFlow && responseCode === 'OK') {\n this.basketService.basketBadgeNumberSet = '0';\n\n await this.bookingService.registerPayment(\n this.applicationState.CurrentHotelCode,\n res.resGuid!,\n transactionId as Guid,\n Number(paymentFlow) as PaymentFlowEnum,\n );\n\n if (giftcard && giftcard.Amount > 0) {\n if (res.resGuid) {\n giftcard.resGuid = res.resGuid;\n await this.hotelService.payAmountWithGiftcard(giftcard);\n }\n }\n\n const bookingInformation = this.bookingService.bookingInformation.get()\n ? this.bookingService.bookingInformation.get()\n : ({\n HotelCode: this.applicationState.CurrentHotelCode,\n } as BookingInformation);\n\n await this.bookingService.sendNotification(bookingInformation, await this.localeService.getLocale());\n\n await this.bookingService.completePayment(res);\n this.basketService.clear();\n\n await this.navigationHelper.continue('/AcceptPayment/1', '/reciept');\n\n // Payment canceled\n } else {\n if (res && !isPaymentLink) {\n await this.bookingService.CancelReservation(res.reservationId);\n }\n\n if (!isPaymentLink) await this.navigationHelper.navigateToPage('/customer');\n else await this.navigationHelper.navigateToPage(`/payment-link/${res.resGuid!}`);\n }\n } catch (err) {\n console.log(`CustomerRoute access Acceptpayment failed: ${(err as Error).message}`);\n await this.navigationHelper.navigateToPage('/payment-failed');\n throw err;\n }\n }, 'LOA_PreparingPaymnent');\n }\n}\n\ninterface PaymentCompletedModel {\n paymentId: Guid;\n}\n","\n\n \n \n \n \n \n\n","import { Component, OnInit } from '@angular/core';\nimport { SafeResourceUrl } from '@angular/platform-browser';\nimport { LogService } from '@com/logging';\nimport { Step, StepList } from 'src/app/modules/step-list';\n\nimport { ApplicationStateService, BasketService, BookingService, Loader, OriginEnum } from 'src/app/core';\nimport { PaymentService, ReservationType } from 'src/app/core/modules/payment';\nimport { Guid } from '../../helpers';\nimport { NavigationHelper } from '../../helpers/navigation-helper';\n\n@Component({\n selector: 'app-payment',\n templateUrl: './flex-win-payment.component.html',\n})\nexport class FlexWinPaymentComponent implements OnInit {\n reservation: ReservationType | undefined;\n url: SafeResourceUrl | undefined;\n useNetsEasy = true;\n timer: any;\n appState!: ApplicationStateService;\n netsPaymentId: Guid | undefined;\n netsPaymentIdGiftcard: Guid | undefined;\n\n constructor(\n private log: LogService,\n private bookingService: BookingService,\n private paymentService: PaymentService,\n private applicationState: ApplicationStateService,\n private basketService: BasketService,\n private stepList: StepList,\n private navigationHelper: NavigationHelper,\n private loader: Loader,\n ) {}\n\n async ngOnInit() {\n this.log.debug('PaymentRoute ngOnInit()');\n window.scrollTo(0, 0);\n this.stepList.set(Step.Payment);\n\n this.appState = this.applicationState;\n\n if (this.applicationState.UseNetsEasy && this.applicationState.Origin !== OriginEnum.GiftCard) {\n await this.loader.using(async () => {\n try {\n // If the basketservice.value is null, we should send the customer back to payment-link window, as we then know that the customer was send from where.\n // For the basketservice not to be null, the customer must have been going through the onlinebooking steps.\n const basket = this.basketService.get();\n if (basket === null) {\n this.applicationState.Origin = OriginEnum.PaymentLink;\n if (this.applicationState.ReservationId && this.applicationState.ReservationId !== '') {\n this.applicationState.ReservationGuid = this.applicationState.ReservationId as Guid;\n }\n }\n\n const giftcardNumber = this.navigationHelper.getRouteParam('giftcardNumber');\n\n const p = await this.paymentService.makeNetsEasyPaymentUrl(\n this.applicationState.Origin,\n this.applicationState.ReservationGuid,\n this.bookingService.getReservationOrFail(),\n giftcardNumber,\n );\n\n if (p) {\n window.open(p.HostedPaymentPageUrl, '_self');\n }\n } catch (ex) {\n if ((ex as Error).message.includes('Reservation must be defined')) {\n await this.navigationHelper.navigateToPage('search');\n } else {\n await this.navigationHelper.navigateToPage('payment-failed');\n this.log.error('Payment responded with error', ex);\n }\n }\n });\n } else if (this.applicationState.UseNetsEasy && this.applicationState.Origin === OriginEnum.GiftCard) {\n await this.loader.using(async () => {\n // If the basketservice.value is null, we should send the customer back to payment-link window, as we then know that the customer was send from where.\n // For the basketservice not to be null, the customer must have been going through the onlinebooking steps.\n const basket = this.basketService.get();\n if (basket === null) {\n this.applicationState.Origin = OriginEnum.PaymentLink;\n if (this.applicationState.ReservationId && this.applicationState.ReservationId !== '') {\n this.applicationState.ReservationGuid = this.applicationState.ReservationId as Guid;\n }\n }\n\n const p = this.bookingService.giftcardEasyInfo.get();\n\n if (p) {\n window.open(p.HostedPaymentPageUrl, '_self');\n }\n });\n } else if (this.applicationState.UseNetAxept && this.applicationState.Origin !== OriginEnum.GiftCard) {\n await this.loader.using(async () => {\n try {\n // If the basketservice.value is null, we should send the customer back to payment-link window, as we then know that the customer was send from where.\n // For the basketservice not to be null, the customer must have been going through the onlinebooking steps.\n const basket = this.basketService.get();\n if (basket === null) {\n this.applicationState.Origin = OriginEnum.PaymentLink;\n if (this.applicationState.ReservationId && this.applicationState.ReservationId !== '') {\n this.applicationState.ReservationGuid = this.applicationState.ReservationId as Guid;\n }\n }\n\n this.reservation = this.bookingService.getReservationOrFail();\n const giftcardNumber = this.navigationHelper.getRouteParam('giftcardNumber');\n\n const p = await this.paymentService.makeNetAxeptPaymentUrl(\n this.applicationState.Origin,\n this.reservation,\n giftcardNumber,\n );\n window.open(p.PaymentUrl, '_self');\n } catch (ex) {\n await this.navigationHelper.navigateToPage('payment-failed');\n this.log.error('Payment responded with error', ex);\n }\n });\n } else if (this.applicationState.UseNetAxept && this.applicationState.Origin === OriginEnum.GiftCard) {\n await this.loader.using(async () => {\n window.open(this.applicationState.GiftcardPayment, '_self');\n });\n }\n }\n\n readonly OriginEnum = OriginEnum;\n}\n","
\n

{{ 'LOA_PreparingPaymnent' | t | async }}

\n
\n","import { Component, OnDestroy, OnInit, TemplateRef, ViewChild } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { LogService } from '@com/logging';\nimport { BehaviorSubject, combineLatest, from } from 'rxjs';\nimport { distinctUntilChanged, map, switchMap, tap } from 'rxjs/operators';\nimport { AppQueryParams } from 'src/app/app.component';\nimport {\n ApplicationStateService,\n BasketQueryParams,\n BasketService,\n CustomerService,\n HotelService,\n Loader,\n LocaleService,\n PromotionService,\n Rate,\n Room,\n RoomType,\n SearchParams,\n TrackingService,\n} from 'src/app/core';\nimport {\n CompanyAgreementDiscountResponseModel,\n GuestCombination,\n HotelRoomRateData,\n SpectraApiRateResponseModel,\n} from 'src/app/core/modules/hotel/data-hotel.service';\nimport { GetPromotionCodeStatus } from '../../core/modules/promotion/data-promotion.service';\nimport { DateHelper, GuestType, UTCDateTimeString } from '../../helpers';\nimport { NavigationHelper } from '../../helpers/navigation-helper';\nimport { Messenger } from '../../modules/messenger';\nimport { DesignConfiguration } from '../../shared/design/design-configuration';\nimport { RoomLookupError, RoomsNotAvailableReason, RoomsSoldOutReason } from '../room/room-lookup-error';\nimport { SearchComponent } from '../search/search.component';\n\ninterface RoomRouteParams {\n index?: string;\n}\n\n@Component({\n selector: 'app-room',\n templateUrl: './ratesRoom.component.html',\n})\nexport class RatesRoomComponent implements OnInit, OnDestroy {\n private bookingIndex$ = this.route.params.pipe(\n map((params: RoomRouteParams) => +(params.index || '1') - 1),\n distinctUntilChanged(),\n tap(() => {\n document.body.scrollTop = 0;\n }),\n );\n private selected$ = new BehaviorSubject(undefined as RatesUI | undefined);\n arrivaldate = '';\n lengthOfStay = 2;\n basket = this.getBasket(this.route.snapshot.queryParams as AppQueryParams);\n rooms: RoomType[] | undefined;\n roomRateData: HotelRoomRateData[] | undefined;\n rateSelected = false;\n selectedRate: RatesUI | undefined;\n presentationsRooms: Room[] | undefined;\n returnFromBasket = false;\n roomsAndRates: SpectraApiRateResponseModel[] | undefined;\n\n @ViewChild('messageRoomGalleryTempalte', { static: false })\n messageRoomGalleryTempalte: TemplateRef | undefined;\n @ViewChild('messageRateGalleryTempalte', { static: false })\n messageRateGalleryTempalte: TemplateRef | undefined;\n\n data$ = combineLatest([\n this.localeService.locale$,\n this.bookingIndex$,\n this.promotionService.promocode$,\n this.customerService.customerId$,\n this.customerService.companyId$,\n ]).pipe(\n switchMap(([, bookingIndex, , , companyId]) =>\n from(this.buildRatesUIModel(bookingIndex, companyId)).pipe(\n tap((rooms) => {\n if (this.basket.bookings[bookingIndex]) {\n this.selected$.next(rooms.find((x) => x.Code === this.basket.bookings[bookingIndex].RateCode));\n this.selectedRate = this.selected$.value;\n this.rateSelected = true;\n }\n }),\n switchMap((rooms) =>\n this.selected$.pipe(\n switchMap((room) =>\n from(this.buildRoomsForRate(bookingIndex, companyId)).pipe(\n map((rates) => {\n return {\n bookingIndex,\n rooms,\n room,\n rates,\n };\n }),\n ),\n ),\n ),\n ),\n ),\n ),\n );\n\n constructor(\n private log: LogService,\n private route: ActivatedRoute,\n private basketService: BasketService,\n private hotelService: HotelService,\n private localeService: LocaleService,\n private trackingService: TrackingService,\n private customerService: CustomerService,\n private promotionService: PromotionService,\n private loader: Loader,\n private applicationState: ApplicationStateService,\n private messenger: Messenger,\n private navigationHelper: NavigationHelper,\n private designConfig: DesignConfiguration,\n ) {}\n\n async ngOnInit() {\n this.applicationState.stopScrolling(false);\n this.lengthOfStay = this.basket.params.stay;\n this.arrivaldate = DateHelper.toServerDateFormatString(this.basket.params.arrival);\n document.body.classList.remove('addBackGround');\n document.body.classList.remove('addBackGroundWithAnimation');\n document.body.style.backgroundImage = '';\n\n this.applicationState.ReturnFromOnlySeating = 'false';\n\n if (this.basket.bookings.length !== 0 && this.basket.bookings.length === this.basket.params.rooms.length) {\n this.returnFromBasket = true;\n }\n\n await this.prepareNavigation();\n }\n\n ngOnDestroy(): void {\n this.navigationHelper.resetNextPage();\n }\n\n async prepareNavigation() {\n if (this.applicationState.UseTableReservation && this.applicationState.InclueTableReservationBookingFlow) {\n await this.navigationHelper.continueMobileNavigationbar(false, true, '/ratesRoom/1', '/products', {\n queryParams: {\n HotelCode: this.applicationState.CurrentHotelCode,\n ArrivalDate: this.arrivaldate,\n LengthOfStay: this.lengthOfStay,\n guest: this.calculateGuestCount(),\n },\n });\n } else if (this.applicationState.UseSeatings && this.applicationState.InclueSeatingBookingFlow) {\n await this.navigationHelper.continueMobileNavigationbar(false, true, '/ratesRoom/1', '/seating/1');\n } else {\n await this.navigationHelper.continueMobileNavigationbar(false, true, '/ratesRoom/1', '/add-on/1');\n }\n }\n\n async onRateClick(e: Event, rate: RatesUI) {\n e.stopPropagation();\n\n if (this.messageRoomGalleryTempalte !== undefined && this.selected$.value !== rate) {\n this.applicationState.stopScrolling(true);\n this.basketService.hideBasket();\n let array = [] as string[];\n if (rate.Image !== '' || rate.Image1 !== '' || rate.Image2 !== '') {\n array = [rate.Image, rate.Image1, rate.Image2];\n }\n const message = this.messenger.show(\n this.messageRoomGalleryTempalte,\n {\n roomData: undefined,\n imageArray: array.filter((x) => x !== ''),\n selectedImage: array[0],\n rateDataUI: rate,\n rateData: undefined,\n accept: () => {\n this.selectedRate = rate;\n this.applicationState.stopScrolling(false);\n this.selected$.next(this.selected$.value === rate ? undefined : rate);\n this.messenger.close(message);\n if (this.designConfig.addProductScrolling()) {\n const res = document.documentElement.scrollTop || document.body.scrollTop;\n window.scrollTo({\n left: 0,\n top: res === 0 ? +200 : res + 100,\n behavior: 'smooth',\n });\n }\n },\n close: () => {\n this.applicationState.stopScrolling(false);\n this.messenger.close(message);\n },\n nextImage: (img: string) => {\n const index = array.findIndex((x) => x === img);\n if (array.length - 1 === index) {\n message.data.selectedImage = array[0];\n } else {\n message.data.selectedImage = array[index + 1];\n }\n },\n prevImage: (img: string) => {\n const index = array.findIndex((x) => x === img);\n if (index === 0) {\n message.data.selectedImage = array[array.length - 1];\n } else {\n message.data.selectedImage = array[index - 1];\n }\n },\n },\n () => {\n this.applicationState.stopScrolling(false);\n message.data.close();\n },\n );\n } else {\n this.applicationState.stopScrolling(false);\n this.selected$.next(undefined);\n }\n\n this.rateSelected = true;\n }\n\n chooseAnotherRate() {\n this.rateSelected = false;\n }\n\n async onBookClick(bookingIndex: number, rate: Rate, room: Room) {\n const bookingToRemove = this.basket.bookings[bookingIndex];\n if (bookingToRemove) {\n this.trackingService.ecommerceRemoveFromCart({\n item_name: `${bookingToRemove.RoomName}/${bookingToRemove.RateCode}`,\n item_id: `${bookingToRemove.RoomCode}/${bookingToRemove.RateCode}`,\n price: bookingToRemove.Price,\n item_category: 'Room',\n quantity: 1,\n });\n }\n\n this.basket.bookings[bookingIndex] = {\n RoomName: room.Name,\n RateName: this.selectedRate !== undefined ? this.selectedRate.ShortDescription : rate.Code,\n Price: room.Price,\n RateCode: rate.Code,\n RateDescription: rate.LongDescription ? rate.LongDescription : '',\n RoomCode: room.Code,\n HasPromotionForCustomer: rate.HasPromotionForCustomer,\n ConferenceRateCode: '',\n ConferenceRoomCode: '',\n OriginalPrice: room.OriginalPrice,\n };\n this.trackingService.ecommerceAddToCart({\n item_name: `${room.Name}/${rate.Code}`,\n item_id: `${room.Code}/${rate.Code}`,\n price: room.Price,\n item_category: 'Room',\n quantity: 1,\n });\n this.basketService.set(this.basket);\n const roomCount = this.basket.params.rooms ? this.basket.params.rooms.length : 0;\n if (this.basket.bookings.length < roomCount) {\n await this.navigationHelper.continue('/ratesRoom/1', `/ratesRoom/${this.basket.bookings.length + 1}`);\n } else if (this.applicationState.UseTableReservation && this.applicationState.InclueTableReservationBookingFlow) {\n await this.navigationHelper.continue('/ratesRoom/1', '/products', {\n queryParams: {\n HotelCode: this.applicationState.CurrentHotelCode,\n ArrivalDate: this.arrivaldate,\n LengthOfStay: this.lengthOfStay,\n guest: this.calculateGuestCount(),\n },\n });\n } else if (this.applicationState.UseSeatings && this.applicationState.InclueSeatingBookingFlow) {\n await this.navigationHelper.continue('/ratesRoom/1', '/seating/1');\n } else {\n await this.navigationHelper.continue('/ratesRoom/1', '/add-on/1');\n }\n }\n\n calculateGuestCount() {\n if (this.basket) {\n let count = 0;\n\n for (const item of this.basket.params.rooms) {\n count = count + item.getPersons();\n }\n return count;\n }\n return 2;\n }\n async onRateSelect(bookingIndex: number, rate: Rate, room: Room) {\n if (this.messageRateGalleryTempalte !== undefined && this.selectedRate !== undefined) {\n this.applicationState.stopScrolling(true);\n let array = [] as string[];\n if (room.Image !== '' || room.Image1 !== '' || room.Image2 !== '') {\n array = [room.Image, room.Image1, room.Image2];\n }\n this.trackingService.ecommerceViewItem({\n item_name: `${room.Name}/${rate.Code}`,\n item_id: `${room.Code}/${rate.Code}`,\n price: rate.Price,\n item_category: 'Room',\n quantity: rate.Quantity,\n });\n const message = this.messenger.show(\n this.messageRateGalleryTempalte,\n {\n roomData: room,\n imageArray: array.filter((x) => x !== ''),\n selectedImage: array[0],\n rateData: rate,\n rateDataUI: undefined,\n accept: async () => {\n this.applicationState.stopScrolling(false);\n\n const bookingToRemove = this.basket.bookings[bookingIndex];\n if (bookingToRemove) {\n this.trackingService.ecommerceRemoveFromCart({\n item_name: `${bookingToRemove.RoomName}/${bookingToRemove.RateCode}`,\n item_id: `${bookingToRemove.RoomCode}/${bookingToRemove.RateCode}`,\n price: bookingToRemove.Price,\n item_category: 'Room',\n quantity: 1,\n });\n }\n\n this.basket.bookings[bookingIndex] = {\n RoomName: room.Name,\n RateName: this.selectedRate ? this.selectedRate.ShortDescription : rate.Code,\n Price: room.Price,\n RateCode: rate.Code,\n RateDescription: room.Long ? room.Long : '',\n RoomCode: room.Code,\n HasPromotionForCustomer: rate.HasPromotionForCustomer,\n ConferenceRateCode: '',\n ConferenceRoomCode: '',\n OriginalPrice: room.OriginalPrice,\n };\n\n this.trackingService.ecommerceAddToCart({\n item_name: `${room.Name}/${rate.Code}`,\n item_id: `${room.Code}/${rate.Code}`,\n price: room.Price,\n item_category: 'Room',\n quantity: 1,\n });\n this.basketService.set(this.basket);\n const roomCount = this.basket.params.rooms ? this.basket.params.rooms.length : 0;\n if (this.basket.bookings.length < roomCount) {\n await this.navigationHelper.continue('/ratesRoom/1', `/ratesRoom/${this.basket.bookings.length + 1}`);\n } else if (this.applicationState.UseSeatings && this.applicationState.InclueSeatingBookingFlow) {\n await this.navigationHelper.continue('/ratesRoom/1', '/seating/1');\n } else {\n await this.navigationHelper.continue('/ratesRoom/1', '/add-on/1');\n }\n this.messenger.close(message);\n },\n close: () => {\n this.applicationState.stopScrolling(false);\n this.messenger.close(message);\n },\n nextImage: (img: string) => {\n const index = array.findIndex((x) => x === img);\n if (array.length - 1 === index) {\n message.data.selectedImage = array[0];\n } else {\n message.data.selectedImage = array[index + 1];\n }\n },\n prevImage: (img: string) => {\n const index = array.findIndex((x) => x === img);\n if (index === 0) {\n message.data.selectedImage = array[array.length - 1];\n } else {\n message.data.selectedImage = array[index - 1];\n }\n },\n },\n () => {\n this.applicationState.stopScrolling(false);\n message.data.close();\n },\n );\n }\n }\n\n async onMoveToNextClick() {\n if (this.applicationState.UseTableReservation && this.applicationState.InclueTableReservationBookingFlow) {\n await this.navigationHelper.continue('/ratesRoom/1', '/products', {\n queryParams: {\n HotelCode: this.applicationState.CurrentHotelCode,\n ArrivalDate: this.arrivaldate,\n LengthOfStay: this.lengthOfStay,\n guest: this.calculateGuestCount(),\n },\n });\n } else if (this.applicationState.UseSeatings && this.applicationState.InclueSeatingBookingFlow) {\n await this.navigationHelper.continue('/ratesRoom/1', '/seating/1');\n } else {\n await this.navigationHelper.continue('/ratesRoom/1', '/add-on/1');\n }\n }\n\n onSelectedRateClick(bookingIndex: number, room: Room, rate: Rate) {\n this.log.debug(`RoomRoute onSelectedRateClick(${room.Code})`, rate);\n\n const bookingToRemove = this.basket.bookings[bookingIndex];\n this.trackingService.ecommerceRemoveFromCart({\n item_name: `${bookingToRemove.RoomName}/${bookingToRemove.RateCode}`,\n item_id: `${bookingToRemove.RoomCode}/${bookingToRemove.RateCode}`,\n price: bookingToRemove.Price,\n item_category: 'Room',\n quantity: 1,\n });\n\n this.basket.bookings.splice(bookingIndex);\n this.basketService.set(this.basket);\n }\n\n changeImage(url: string, model: GalleryModel) {\n model.selectedImage = url;\n }\n\n resetBasketBadge() {\n this.basketService.basketBadgeNumberSet = '0';\n }\n\n async goBack() {\n await this.navigationHelper.goBack();\n }\n\n private async buildRatesUIModel(bookingIndex: number, companyId: number | undefined) {\n let loadedRates = await this.loader.using(async () => {\n const guests = [] as GuestCombination[];\n const item = this.basket.params.rooms[bookingIndex];\n const guest = {\n AdultCount: item.get(GuestType.Adult),\n ChildCount: item.get(GuestType.Child),\n InfantCount: item.get(GuestType.Infant),\n SeniorCount: item.get(GuestType.Senior),\n TeenagerCount: item.get(GuestType.UnknownType1),\n } as GuestCombination;\n guests.push(guest);\n\n const availableRatesAndRooms = await this.hotelService.GetSpectraRateInfo(\n this.applicationState.CurrentHotelCode,\n this.basket.params.arrival,\n DateHelper.addDays(this.basket.params.arrival, this.lengthOfStay),\n '',\n guests,\n await this.localeService.getLocale(),\n companyId,\n );\n\n const rateModels: RatesUI[] = [];\n\n if (availableRatesAndRooms) {\n this.roomsAndRates = availableRatesAndRooms;\n const usingPromotionCode = this.promotionService.getPromocode();\n let ratesWithPromotion = [] as GetPromotionCodeStatus[];\n let ratesWithCompanyAgreement = [] as CompanyAgreementDiscountResponseModel[];\n\n if (companyId) {\n ratesWithCompanyAgreement = await this.hotelService.GetCompanyAgreementDiscount(\n this.applicationState.CurrentHotelCode,\n companyId,\n );\n }\n\n if (usingPromotionCode) {\n ratesWithPromotion = await this.promotionService.getPromotionStatus(\n this.applicationState.CurrentHotelCode,\n usingPromotionCode,\n );\n\n let fromDate = DateHelper.addDays(new Date(), 365);\n let toDate = new Date();\n\n for (const promo of ratesWithPromotion) {\n if (DateHelper.FromUtcDate(promo.StayFromDate.toString() as UTCDateTimeString) < fromDate) {\n fromDate = DateHelper.FromUtcDate(promo.StayFromDate.toString() as UTCDateTimeString);\n }\n if (DateHelper.FromUtcDate(promo.StayToDate.toString() as UTCDateTimeString) > toDate) {\n toDate = DateHelper.FromUtcDate(promo.StayToDate.toString() as UTCDateTimeString);\n }\n }\n\n if (\n ratesWithPromotion.length !== 0 &&\n fromDate.getTime() >= this.basket.params.arrival.getTime() &&\n toDate.getTime() >= this.basket.params.arrival.getTime()\n ) {\n if (fromDate.getTime() !== this.basket.params.arrival.getTime()) {\n ratesWithPromotion = [] as GetPromotionCodeStatus[];\n }\n }\n\n if (\n ratesWithPromotion.length !== 0 &&\n fromDate.getTime() <= DateHelper.addDays(this.basket.params.arrival, this.basket.params.stay).getTime() &&\n toDate.getTime() <= DateHelper.addDays(this.basket.params.arrival, this.basket.params.stay).getTime()\n ) {\n if (\n toDate.getTime() !== DateHelper.addDays(this.basket.params.arrival, this.basket.params.stay).getTime()\n ) {\n ratesWithPromotion = [] as GetPromotionCodeStatus[];\n }\n }\n }\n\n for (const data of availableRatesAndRooms) {\n const info = await this.hotelService.GetECommerceRateInfo(\n this.applicationState.CurrentHotelCode,\n data.RatePlan,\n await this.localeService.getLocale(),\n );\n const rateModel = {\n FromPrice: 0,\n PromotionPrice: 0,\n Code: info.Code,\n } as RatesUI;\n\n for (const room of data.RoomTypes) {\n if ((rateModel.FromPrice && rateModel.FromPrice > room.Price) || rateModel.FromPrice === 0) {\n rateModel.FromPrice = room.Price;\n }\n rateModel.OriginalPrice = room.Price;\n rateModel.Price = room.Price;\n }\n\n if (ratesWithPromotion && ratesWithPromotion.length !== 0) {\n const possiblePromotionOnRate = ratesWithPromotion.find((x) => x.RatePlanCode === data.RatePlan);\n if (possiblePromotionOnRate) {\n const ratePrice = rateModel.FromPrice as number;\n\n rateModel.Price = ratePrice - ratePrice * (possiblePromotionOnRate.DiscountPercentage / 100);\n rateModel.PromotionCode = possiblePromotionOnRate.DiscountPercentage;\n\n if (\n (rateModel.PromotionPrice && rateModel.PromotionPrice > ratePrice) ||\n rateModel.PromotionPrice === 0\n ) {\n rateModel.PromotionPrice =\n (rateModel.FromPrice as number) - ratePrice * (possiblePromotionOnRate.DiscountPercentage / 100);\n }\n }\n }\n\n if (ratesWithCompanyAgreement && ratesWithCompanyAgreement.length !== 0) {\n const possibleAgreementOnRate = ratesWithCompanyAgreement.find((x) => x.RatePlanCode === rateModel.Code);\n if (possibleAgreementOnRate) {\n const ratePrice = rateModel.FromPrice as number;\n\n rateModel.Price = ratePrice - ratePrice * (parseFloat(possibleAgreementOnRate.DiscountPercentage) / 100);\n rateModel.PromotionPrice =\n ratePrice - ratePrice * (parseFloat(possibleAgreementOnRate.DiscountPercentage) / 100);\n rateModel.PromotionCode = parseFloat(possibleAgreementOnRate.DiscountPercentage);\n }\n }\n\n rateModel.Image = info.Image;\n rateModel.Image1 = info.Image1;\n rateModel.Image2 = info.Image2;\n rateModel.ShortDescription = data.Name;\n rateModel.LongDescription = data.Description;\n rateModel.Sortindex = info.Sortindex;\n\n if (rateModels.findIndex((x) => x.Code === info.Code) < 0) {\n rateModels.push(rateModel);\n }\n }\n }\n return rateModels;\n }, 'LOA_Rooms');\n\n if (this.basket.params.RateCode !== undefined && this.basket.params.RateCode !== '') {\n loadedRates = loadedRates.filter(\n (x) => x.Code.toLowerCase() === (this.basket.params.RateCode as string).toLowerCase(),\n );\n }\n\n if (!loadedRates) {\n throw new RoomLookupError(new RoomsNotAvailableReason());\n } else if (loadedRates.every((item) => !item.Code)) {\n throw new RoomLookupError(new RoomsSoldOutReason());\n }\n\n return loadedRates.filter((x) => x.Price !== 0).sort((a, b) => (a.Sortindex > b.Sortindex ? 1 : -1));\n }\n\n private async buildRoomsForRate(bookingIndex: number, companyId: number | undefined) {\n if (this.selected$.value) {\n const rateCode = this.selected$.value.Code;\n const rooms: Room[] = [];\n\n if (this.roomsAndRates) {\n const data = this.roomsAndRates;\n\n const usingPromotionCode = this.promotionService.getPromocode();\n let ratesWithPromotion = [] as GetPromotionCodeStatus[];\n let ratesWithCompanyAgreement = [] as CompanyAgreementDiscountResponseModel[];\n\n if (companyId) {\n ratesWithCompanyAgreement = await this.hotelService.GetCompanyAgreementDiscount(\n this.applicationState.CurrentHotelCode,\n companyId,\n );\n }\n\n if (usingPromotionCode) {\n ratesWithPromotion = await this.promotionService.getPromotionStatus(\n this.applicationState.CurrentHotelCode,\n usingPromotionCode,\n );\n\n let fromDate = DateHelper.addDays(new Date(), 365);\n let toDate = new Date();\n\n for (const promo of ratesWithPromotion) {\n if (DateHelper.FromUtcDate(promo.StayFromDate.toString() as UTCDateTimeString) < fromDate) {\n fromDate = DateHelper.FromUtcDate(promo.StayFromDate.toString() as UTCDateTimeString);\n }\n if (DateHelper.FromUtcDate(promo.StayToDate.toString() as UTCDateTimeString) > toDate) {\n toDate = DateHelper.FromUtcDate(promo.StayToDate.toString() as UTCDateTimeString);\n }\n }\n\n if (\n ratesWithPromotion.length !== 0 &&\n fromDate.getTime() >= this.basket.params.arrival.getTime() &&\n toDate.getTime() >= this.basket.params.arrival.getTime()\n ) {\n if (fromDate.getTime() !== this.basket.params.arrival.getTime()) {\n ratesWithPromotion = [] as GetPromotionCodeStatus[];\n }\n }\n\n if (\n ratesWithPromotion.length !== 0 &&\n fromDate.getTime() <= DateHelper.addDays(this.basket.params.arrival, this.basket.params.stay).getTime() &&\n toDate.getTime() <= DateHelper.addDays(this.basket.params.arrival, this.basket.params.stay).getTime()\n ) {\n if (\n toDate.getTime() !== DateHelper.addDays(this.basket.params.arrival, this.basket.params.stay).getTime()\n ) {\n ratesWithPromotion = [] as GetPromotionCodeStatus[];\n }\n }\n }\n\n return await this.loader.using(async () => {\n try {\n const rate = data.find((x) => x.RatePlan === rateCode);\n if (rate) {\n for (const room of rate.RoomTypes) {\n if (rooms.filter((x) => x.Code === room.RoomType).length === 0) {\n const newRoom = {} as Room;\n\n const info = await this.hotelService.GetECommerceRoomInfo(\n this.applicationState.CurrentHotelCode,\n room.RoomType,\n await this.localeService.getLocale(),\n );\n\n newRoom.Code = info.Code;\n newRoom.Image = info.Image;\n newRoom.Image1 = info.Image1;\n newRoom.Image2 = info.Image2;\n newRoom.Long = info.Long;\n newRoom.MaxPers = info.MaxPers;\n newRoom.MinPers = info.MinPers;\n newRoom.Name = info.Name;\n newRoom.Short = info.Short;\n newRoom.OriginalPrice = room.Price;\n newRoom.FromPrice = room.Price;\n newRoom.SortIndex = info.SortIndex;\n\n const possiblePromotionOnRate = ratesWithPromotion.find((x) => x.RatePlanCode === rateCode);\n\n const possibleAgreementOnRate = ratesWithCompanyAgreement.find((x) => x.RatePlanCode === rateCode);\n\n if (ratesWithPromotion.length !== 0 && possiblePromotionOnRate) {\n newRoom.Price = room.Price - room.Price * (possiblePromotionOnRate.DiscountPercentage / 100);\n newRoom.PromotionCode = possiblePromotionOnRate.DiscountPercentage.toString();\n } else if (possibleAgreementOnRate) {\n newRoom.Price =\n room.Price - room.Price * (parseFloat(possibleAgreementOnRate.DiscountPercentage) / 100);\n newRoom.PromotionCode = possibleAgreementOnRate.DiscountPercentage.toString();\n } else {\n newRoom.Price = room.Price;\n }\n\n if (info.MinPers <= this.basket.params.rooms[bookingIndex].getPersons()) {\n rooms.push(newRoom);\n }\n }\n }\n }\n this.presentationsRooms = rooms;\n return rooms.sort((a, b) => (a.SortIndex > b.SortIndex ? 1 : -1));\n } catch (err) {\n return undefined;\n }\n }, 'LOA_Rates');\n }\n }\n\n return [];\n }\n\n private getBasket(queryParams: Partial) {\n const hotelCode = SearchComponent.ParseHotelCode(queryParams);\n const arrival = SearchComponent.ParseArrival(queryParams);\n const stay = SearchComponent.ParseStay(queryParams);\n const rooms = SearchComponent.ParseRooms(queryParams);\n const single = SearchComponent.ParseSingle(queryParams);\n const rateCode = SearchComponent.ParseRateCode(queryParams);\n if (hotelCode && arrival && stay && rooms) {\n const params: SearchParams = {\n hotelCode,\n arrival,\n stay,\n rooms,\n single,\n ArrivalDate: 0,\n ArrivalFullYear: 0,\n ArrivalMonthName: '',\n DepartueDate: 0,\n DepartueFullYear: 0,\n DepartueMonthName: '',\n BookingFlow: 2,\n RateCode: rateCode,\n ConferenceRoomCode: '',\n };\n return this.basketService.create(params);\n } else {\n const basket = this.basketService.get();\n if (basket) {\n return basket;\n } else {\n throw new Error('Basket must not be empty');\n }\n }\n }\n}\n\nexport interface RatesUI {\n Code: string;\n Image: string;\n Image1: string;\n Image2: string;\n Rate: number;\n ShortDescription: string;\n LongDescription: string | null;\n RoomStayAvailabilityCount: number;\n Price: number;\n FromPrice: number | null;\n PromotionPrice: number | null;\n PromotionCode: number | undefined;\n OriginalPrice: number | null;\n Sortindex: number;\n}\n\ninterface GalleryModel {\n accept: () => void;\n close: () => void;\n nextImage: (image: string) => void;\n prevImage: (image: string) => void;\n roomData: Room | undefined;\n rateDataUI: RatesUI | undefined;\n rateData: Rate | undefined;\n selectedImage: string;\n imageArray: string[];\n}\n","
\n
\n {{ 'COM_Back' | t | async }}\n {{ 'COM_Continue' | t | async }}\n {{ 'COM_Continue' | t | async }}\n\n

\n {{ 'RPA_ChooseYourPackage' | t | async }}\n

\n

\n {{ 'RPA_ChooseYourPackage' | t | async }}\n

\n

\n {{ 'COM_Package' | t | async }} {{ data.bookingIndex | char }} ({{\n basket.params.rooms[data.bookingIndex] | guests | async\n }})\n

\n \n
\n\n \n \n \n \n
\n {{ 'RPA_From' | t | async }}\n {{ room.item.FromPrice | price | async }}\n
\n
\n {{ room.item.FromPrice | price | async }}\n {{ 'RPA_From' | t | async }}\n {{ room.item.PromotionPrice | price | async }}\n
\n
\n
\n
\n \n -{{ room.item.PromotionCode }}\n %\n
\n
\n
\n
\n
\n \n \n \n \n

\n {{ 'RPA_Image' | t | async }}\n

\n
\n
\n
\n
\n
\n \n {{ 'RPA_More' | t | async }}\n \n \n {{ 'RPA_Selected' | t | async }}\n \n
\n
\n
\n
\n

\n
\n \n
\n
\n

\n \n

\n
\n \n \n \n
\n
\n
\n
\n \n
\n \n

\n
\n \n {{ rate.OriginalPrice | price | async }}\n {{ rate.Price | price | async }}\n \n
\n \n
\n
\n
\n
\n \n \n \n \n

\n {{ 'RPA_Image' | t | async }}\n

\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n {{ 'RPA_More' | t | async }}\n
\n
\n
\n
\n \n
\n
\n \n \n {{ 'RPA_Selected' | t | async }}\n \n \n {{ 'APA_Book' | t | async }}\n \n
\n
\n
\n
\n
\n
\n
\n \n
\n \n \n \n
\n \n\n\n\n
\n \n
\n

\n
\n
\n

\n
\n \n {{ 'RPA_ChoosePackage' | t | async }}
\n \n {{ 'COM_Close' | t | async }}\n \n \n
\n \n\n
\n \n
\n

\n
\n
\n

\n
\n
\n \n {{ 'COM_Close' | t | async }}\n \n \n {{ 'RPA_ChoosePackage' | t | async }}\n \n
\n
\n \n\n
\n \n
\n

\n
\n
\n

\n
\n \n
\n \n
\n\n\n
\n \n
\n

\n
\n
\n

\n
\n \n {{ 'APA_Book' | t | async }}
\n \n {{ 'COM_Close' | t | async }}\n \n \n \n
\n \n\n
\n \n
\n

\n
\n
\n

\n
\n
\n \n {{ 'COM_Close' | t | async }}\n \n \n {{ 'RPA_ChoosePackage' | t | async }}\n \n
\n
\n {{ 'COM_Price' | t | async }}\n {{ message.roomData.FromPrice | price | async }}\n
\n
\n \n\n
\n \n
\n

\n
\n
\n

\n
\n \n
\n \n
\n","import { Component, OnInit } from '@angular/core';\nimport { LogService } from '@com/logging';\nimport { ApplicationStateService, BookingService, ConfigService, OriginEnum, TrackingService } from 'src/app/core';\nimport { environment } from 'src/environments/environment';\n\n@Component({\n selector: 'app-reciept',\n templateUrl: './reciept.component.html',\n})\nexport class RecieptComponent implements OnInit {\n mainWebsiteUrl = document.referrer.startsWith(location.origin) ? '' : window.location.origin + '/booking'; // if current website is a referrer then use empty string for angular to naviage to root page\n reciept = this.bookingService.getReciept();\n onlineBookingOrigin =\n this.applicationState.Origin === OriginEnum.OnlineBooking || this.applicationState.Origin === OriginEnum.GiftCard;\n\n constructor(\n private log: LogService,\n private configService: ConfigService,\n private bookingService: BookingService,\n private trackingService: TrackingService,\n private applicationState: ApplicationStateService,\n ) {}\n\n async ngOnInit() {\n this.log.debug('RecieptRoute ngOnInit()');\n window.scrollTo(0, 0);\n this.bookingService.updateSessionGiftcard(null);\n const recieptReservation = this.reciept;\n\n if (this.onlineBookingOrigin) {\n if (\n this.applicationState.CustomReceiptRedirectURL !== undefined &&\n this.applicationState.CustomReceiptRedirectURL !== ''\n ) {\n this.mainWebsiteUrl = this.applicationState.CustomReceiptRedirectURL;\n } else {\n const mainWebsiteUrl = (await this.configService.getAppSettings()).MainWebSiteUrl;\n\n if (mainWebsiteUrl) {\n this.mainWebsiteUrl = mainWebsiteUrl;\n } else {\n this.log.info(\n \"AppSettings/MainWebSiteUrl property is not provided. Application may not navigate user to customer's web site.\",\n );\n }\n }\n if (this.applicationState.PaymentlinkCallBack === 'false') {\n // Do not track if callback from paymentlink\n await this.trackingService.ecommercePurchaseFromReservation(recieptReservation.reservation);\n }\n }\n }\n\n redirectToPage() {\n document.location.href = environment.production ? this.mainWebsiteUrl : '/booking';\n }\n\n readonly OriginEnum = OriginEnum;\n}\n","
\n
\n
\n \n
\n
\n
\n

\n {{ 'REP_ReservationId' | t | async }}:\n {{ reciept.reservation.reservationId }}\n

\n

\n {{ 'REP_OrderId' | t | async }}:\n {{ reciept.reservation.reservationId }}\n

\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n","import {\n CustomError,\n DateHelper,\n InvalidCustomerError,\n InvalidPromocodeError,\n PromocodeIsOutsideRangeError,\n UTCDateString,\n} from 'src/app/helpers';\n\nexport interface RoomLookupErrorReasonObj {\n t: string;\n p?: { [key: string]: any };\n}\n\nabstract class RoomLookupErrorReason {\n params?: { [key: string]: any };\n\n abstract getType(): string;\n\n toJSON() {\n const obj: RoomLookupErrorReasonObj = {\n t: this.getType(),\n p: this.params,\n };\n return JSON.stringify(obj);\n }\n}\n\nexport class RoomsNotAvailableReason extends RoomLookupErrorReason {\n static Type = 'NothingAvailable';\n getType() {\n return RoomsNotAvailableReason.Type;\n }\n}\n\nexport class RoomsSoldOutReason extends RoomLookupErrorReason {\n static Type = 'SoldOut';\n getType() {\n return RoomsSoldOutReason.Type;\n }\n}\n\nexport class CustomerInvalidReason extends RoomLookupErrorReason {\n static Type = 'CustomerInvalid';\n getType() {\n return CustomerInvalidReason.Type;\n }\n}\n\nexport class RoomsPromocodeInvalidReason extends RoomLookupErrorReason {\n static Type = 'PromocodeInvalid';\n getType() {\n return RoomsPromocodeInvalidReason.Type;\n }\n}\n\nexport class RoomsPromocodeOutsideRangeReason extends RoomLookupErrorReason {\n static Type = 'PromocodeOutsideRange';\n\n params: {\n start: Date;\n end: Date;\n };\n\n constructor(params: { [key: string]: string }) {\n super();\n if (!params.start || !params.end) {\n throw new Error('Passed data is not correct PromocodeOutsideRange');\n } else {\n this.params = {\n start: DateHelper.FromUtcDate(params.start as UTCDateString),\n end: DateHelper.FromUtcDate(params.end as UTCDateString),\n };\n }\n }\n\n getType() {\n return RoomsPromocodeOutsideRangeReason.Type;\n }\n}\n\nexport class RoomLookupError extends Error {\n static readonly Type = 'RoomLookupError';\n readonly type = RoomLookupError.Type;\n constructor(reason: RoomLookupErrorReason) {\n super(reason.toJSON());\n }\n\n static Handle(err: Error) {\n if ((err as CustomError).type === InvalidCustomerError.Type) {\n throw new RoomLookupError(new CustomerInvalidReason());\n }\n if ((err as CustomError).type === InvalidPromocodeError.Type) {\n throw new RoomLookupError(new RoomsPromocodeInvalidReason());\n }\n if ((err as CustomError).type === PromocodeIsOutsideRangeError.Type) {\n const error = err as PromocodeIsOutsideRangeError;\n throw new RoomLookupError(\n new RoomsPromocodeOutsideRangeReason({\n start: error.start,\n end: error.end,\n }),\n );\n }\n throw err;\n }\n}\n","import { Component, OnDestroy, OnInit, TemplateRef, ViewChild } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { LogService } from '@com/logging';\nimport { BehaviorSubject, combineLatest, from } from 'rxjs';\nimport { distinctUntilChanged, map, switchMap, tap } from 'rxjs/operators';\nimport { AppQueryParams } from 'src/app/app.component';\nimport { ApplicationStateService, CustomerService, PromotionService, RateCodeString } from 'src/app/core';\nimport {\n BasketQueryParams,\n BasketService,\n Loader,\n LocaleService,\n Rate,\n Room,\n SearchParams,\n TrackingService,\n} from 'src/app/core';\nimport {\n CompanyAgreementDiscountResponseModel,\n GuestCombination,\n SpectraApiRoomResponseModel,\n} from '../../core/modules/hotel/data-hotel.service';\nimport { HotelService } from '../../core/modules/hotel/hotel.service';\nimport { GetPromotionCodeStatus } from '../../core/modules/promotion/data-promotion.service';\nimport { DateHelper, GuestType, UTCDateTimeString } from '../../helpers';\nimport { NavigationHelper } from '../../helpers/navigation-helper';\nimport { Messenger } from '../../modules/messenger';\nimport { DesignConfiguration } from '../../shared/design/design-configuration';\nimport { SearchComponent } from '../search/search.component';\nimport { RoomLookupError, RoomsNotAvailableReason, RoomsSoldOutReason } from './room-lookup-error';\n\ninterface RoomRouteParams {\n index?: string;\n}\n\n@Component({\n selector: 'app-room',\n templateUrl: './room.component.html',\n})\nexport class RoomComponent implements OnInit, OnDestroy {\n private bookingIndex$ = this.route.params.pipe(\n map((params: RoomRouteParams) => +(params.index || '1') - 1),\n distinctUntilChanged(),\n tap(() => {\n document.body.scrollTop = 0;\n }),\n );\n\n private selected$ = new BehaviorSubject(undefined as Room | undefined);\n arrivaldate = '';\n lengthOfStay = 2;\n promotionCodeUI: string | undefined;\n basket = this.getBasket(this.route.snapshot.queryParams as AppQueryParams);\n returnFromBasket = false;\n roomsAndRates: SpectraApiRoomResponseModel[] | undefined;\n\n @ViewChild('messageRoomGalleryTempalte', { static: false })\n messageRoomGalleryTempalte: TemplateRef | undefined;\n @ViewChild('messageRateGalleryTempalte', { static: false })\n messageRateGalleryTempalte: TemplateRef | undefined;\n\n data$ = combineLatest([\n this.localeService.locale$,\n this.bookingIndex$,\n this.promotionService.promocode$,\n this.customerService.customerId$,\n this.customerService.companyId$,\n ]).pipe(\n switchMap(([, bookingIndex, , , companyId]) =>\n from(this.getRooms(bookingIndex, companyId)).pipe(\n tap((rooms) => {\n if (this.basket.bookings[bookingIndex]) {\n this.selected$.next(rooms.find((x) => x.Code === this.basket.bookings[bookingIndex].RoomCode));\n }\n }),\n switchMap((rooms) =>\n this.selected$.pipe(\n switchMap((room) =>\n from(room ? this.GetRatesForRooms(room.Code, companyId) : [[]]).pipe(\n map((rates) => {\n return {\n bookingIndex,\n rooms,\n room,\n rates,\n };\n }),\n ),\n ),\n ),\n ),\n ),\n ),\n );\n\n constructor(\n private log: LogService,\n private route: ActivatedRoute,\n private loader: Loader,\n private basketService: BasketService,\n private hotelService: HotelService,\n private localeService: LocaleService,\n private customerService: CustomerService,\n private promotionService: PromotionService,\n private trackingService: TrackingService,\n private applicationState: ApplicationStateService,\n private messenger: Messenger,\n private navigationHelper: NavigationHelper,\n private designConfig: DesignConfiguration,\n ) {}\n\n async ngOnInit() {\n this.applicationState.stopScrolling(false);\n this.lengthOfStay = this.basket.params.stay;\n this.arrivaldate = DateHelper.toServerDateFormatString(this.basket.params.arrival);\n\n this.applicationState.ReturnFromOnlySeating = 'false';\n\n document.body.classList.remove('addBackGround');\n document.body.classList.remove('addBackGroundWithAnimation');\n document.body.style.backgroundImage = '';\n\n if (this.basket.bookings.length !== 0 && this.basket.bookings.length === this.basket.params.rooms.length) {\n this.returnFromBasket = true;\n }\n await this.prepareNavigation();\n }\n\n ngOnDestroy(): void {\n this.navigationHelper.resetNextPage();\n }\n\n async prepareNavigation() {\n if (this.applicationState.UseTableReservation && this.applicationState.InclueTableReservationBookingFlow) {\n await this.navigationHelper.continueMobileNavigationbar(false, true, '/room/1', '/products', {\n queryParams: {\n HotelCode: this.applicationState.CurrentHotelCode,\n ArrivalDate: this.arrivaldate,\n LengthOfStay: this.lengthOfStay,\n guest: this.calculateGuestCount(),\n },\n });\n } else if (this.applicationState.UseSeatings && this.applicationState.InclueSeatingBookingFlow) {\n await this.navigationHelper.continueMobileNavigationbar(false, true, '/room/1', '/seating/1');\n } else {\n await this.navigationHelper.continueMobileNavigationbar(false, true, '/room/1', '/add-on/1');\n }\n }\n\n async onBookClick(bookingIndex: number, room: Room, rate: Rate) {\n const bookingToRemove = this.basket.bookings[bookingIndex];\n if (bookingToRemove) {\n this.trackingService.ecommerceRemoveFromCart({\n item_name: `${bookingToRemove.RoomName}/${bookingToRemove.RateCode}`,\n item_id: `${bookingToRemove.RoomCode}/${bookingToRemove.RateCode}`,\n price: bookingToRemove.Price,\n item_category: 'Room',\n quantity: 1,\n });\n }\n this.basket.bookings[bookingIndex] = {\n RoomName: room.Name,\n RateName: rate.Name,\n Price: rate.Price,\n OriginalPrice: rate.OriginalPrice,\n RateCode: rate.Code,\n RoomCode: room.Code,\n RateDescription: rate.Long ? rate.Long : '',\n HasPromotionForCustomer: rate.HasPromotionForCustomer,\n ConferenceRateCode: '',\n ConferenceRoomCode: '',\n };\n this.trackingService.ecommerceAddToCart({\n item_name: `${room.Name}/${rate.Code}`,\n item_id: `${room.Code}/${rate.Code}`,\n price: rate.Price,\n item_category: 'Room',\n quantity: 1,\n });\n this.basketService.set(this.basket);\n const roomCount = this.basket.params.rooms ? this.basket.params.rooms.length : 0;\n\n if (this.basket.bookings.length < roomCount) {\n await this.navigationHelper.continue('/room/1', `/room/${this.basket.bookings.length + 1}`);\n } else {\n if (this.applicationState.UseTableReservation && this.applicationState.InclueTableReservationBookingFlow) {\n await this.navigationHelper.continue('/room/1', '/products', {\n queryParams: {\n HotelCode: this.applicationState.CurrentHotelCode,\n ArrivalDate: this.arrivaldate,\n LengthOfStay: this.lengthOfStay,\n guest: this.calculateGuestCount(),\n },\n });\n } else if (this.applicationState.UseSeatings && this.applicationState.InclueSeatingBookingFlow) {\n await this.navigationHelper.continue('/room/1', '/seating/1');\n } else {\n await this.navigationHelper.continue('/room/1', '/add-on/1');\n }\n }\n }\n\n async onRateSelect(bookingIndex: number, room: Room, rate: Rate) {\n this.applicationState.stopScrolling(true);\n this.basketService.hideBasket();\n if (this.messageRateGalleryTempalte !== undefined) {\n let array = [] as string[];\n if (rate.Image !== '' || rate.Image1 !== '' || rate.Image2 !== '') {\n array = [rate.Image, rate.Image1, rate.Image2];\n }\n this.trackingService.ecommerceViewItem({\n item_name: `${room.Name}/${rate.Code}`,\n item_id: `${room.Code}/${rate.Code}`,\n price: rate.Price,\n item_category: 'Room',\n quantity: rate.Quantity,\n });\n const message = this.messenger.show(\n this.messageRateGalleryTempalte,\n {\n roomData: room,\n imageArray: array.filter((x) => x !== ''),\n selectedImage: array[0],\n rateData: rate,\n accept: async () => {\n this.applicationState.stopScrolling(false);\n\n const bookingToRemove = this.basket.bookings[bookingIndex];\n if (bookingToRemove) {\n this.trackingService.ecommerceRemoveFromCart({\n item_name: `${bookingToRemove.RoomName}/${bookingToRemove.RateCode}`,\n item_id: `${bookingToRemove.RoomCode}/${bookingToRemove.RateCode}`,\n price: bookingToRemove.Price,\n item_category: 'Room',\n quantity: 1,\n });\n }\n\n this.basket.bookings[bookingIndex] = {\n RoomName: room.Name,\n RateName: rate.Code,\n Price: rate.Price,\n OriginalPrice: rate.OriginalPrice,\n RateCode: rate.Code,\n RoomCode: room.Code,\n RateDescription: rate.Long ? rate.Long : '',\n HasPromotionForCustomer: rate.HasPromotionForCustomer,\n ConferenceRateCode: '',\n ConferenceRoomCode: '',\n };\n this.trackingService.ecommerceAddToCart({\n item_name: `${room.Name}/${rate.Code}`,\n item_id: `${room.Code}/${rate.Code}`,\n price: rate.Price,\n item_category: 'Room',\n quantity: 1,\n });\n this.basketService.set(this.basket);\n const roomCount = this.basket.params.rooms ? this.basket.params.rooms.length : 0;\n if (this.basket.bookings.length < roomCount) {\n await this.navigationHelper.continue('/room/1', `/room/${this.basket.bookings.length + 1}`);\n } else {\n if (\n this.applicationState.UseTableReservation &&\n this.applicationState.InclueTableReservationBookingFlow\n ) {\n await this.navigationHelper.continue('/room/1', '/products', {\n queryParams: {\n HotelCode: this.applicationState.CurrentHotelCode,\n ArrivalDate: this.arrivaldate,\n LengthOfStay: this.lengthOfStay,\n guest: this.calculateGuestCount(),\n },\n });\n } else if (this.applicationState.UseSeatings && this.applicationState.InclueSeatingBookingFlow) {\n await this.navigationHelper.continue('/room/1', '/seating/1');\n } else {\n await this.navigationHelper.continue('/room/1', '/add-on/1');\n }\n }\n this.messenger.close(message);\n },\n close: () => {\n this.applicationState.stopScrolling(false);\n this.messenger.close(message);\n },\n nextImage: (img: string) => {\n const index = array.findIndex((x) => x === img);\n if (array.length - 1 === index) {\n message.data.selectedImage = array[0];\n } else {\n message.data.selectedImage = array[index + 1];\n }\n },\n prevImage: (img: string) => {\n const index = array.findIndex((x) => x === img);\n if (index === 0) {\n message.data.selectedImage = array[array.length - 1];\n } else {\n message.data.selectedImage = array[index - 1];\n }\n },\n },\n () => {\n this.applicationState.stopScrolling(false);\n message.data.close();\n },\n );\n }\n }\n\n onRoomClick(e: Event, room: Room) {\n this.applicationState.stopScrolling(true);\n this.log.debug(`RoomRoute onRoomClick(${room.Code})`);\n e.stopPropagation();\n if (this.messageRoomGalleryTempalte !== undefined && this.selected$.value !== room) {\n this.basketService.hideBasket();\n let array = [] as string[];\n if (room.Image !== '' || room.Image1 !== '' || room.Image2 !== '') {\n array = [room.Image, room.Image1, room.Image2];\n }\n const message = this.messenger.show(\n this.messageRoomGalleryTempalte,\n {\n roomData: room,\n imageArray: array.filter((x) => x !== ''),\n selectedImage: array[0],\n rateData: undefined,\n accept: () => {\n this.applicationState.stopScrolling(false);\n this.selected$.next(this.selected$.value === room ? undefined : room);\n this.messenger.close(message);\n if (this.designConfig.addProductScrolling()) {\n const res = document.documentElement.scrollTop || document.body.scrollTop;\n window.scrollTo({\n left: 0,\n top: res === 0 ? +200 : res + 100,\n behavior: 'smooth',\n });\n }\n },\n close: () => {\n this.applicationState.stopScrolling(false);\n this.messenger.close(message);\n },\n nextImage: (img: string) => {\n const index = array.findIndex((x) => x === img);\n if (array.length - 1 === index) {\n message.data.selectedImage = array[0];\n } else {\n const next = array[index + 1];\n if (next !== '') {\n message.data.selectedImage = array[index + 1];\n } else {\n message.data.selectedImage = array[0];\n }\n }\n },\n prevImage: (img: string) => {\n const index = array.findIndex((x) => x === img);\n if (index === 0) {\n message.data.selectedImage = array[array.length - 1];\n } else {\n const prev = array[index - 1];\n if (prev !== '') {\n message.data.selectedImage = array[index - 1];\n } else {\n message.data.selectedImage = array[0];\n }\n }\n },\n },\n () => {\n this.applicationState.stopScrolling(false);\n message.data.close();\n },\n );\n } else {\n this.applicationState.stopScrolling(false);\n this.selected$.next(undefined);\n }\n }\n\n changeImage(url: string, model: GalleryModel) {\n model.selectedImage = url;\n }\n\n onSelectedRateClick(bookingIndex: number, room: Room, rate: Rate) {\n const bookingToRemove = this.basket.bookings[bookingIndex];\n if (bookingToRemove) {\n this.trackingService.ecommerceRemoveFromCart({\n item_name: `${bookingToRemove.RoomName}/${bookingToRemove.RateCode}`,\n price: bookingToRemove.Price,\n item_category: 'Room',\n quantity: 1,\n });\n }\n\n this.basket.bookings.splice(bookingIndex);\n this.basketService.set(this.basket);\n }\n\n async onMoveToNextClick() {\n if (this.applicationState.UseTableReservation && this.applicationState.InclueTableReservationBookingFlow) {\n await this.navigationHelper.continue('/room/1', '/products', {\n queryParams: {\n HotelCode: this.applicationState.CurrentHotelCode,\n ArrivalDate: this.arrivaldate,\n LengthOfStay: this.lengthOfStay,\n guest: this.calculateGuestCount(),\n },\n });\n } else if (this.applicationState.UseSeatings && this.applicationState.InclueSeatingBookingFlow) {\n await this.navigationHelper.continue('/room/1', '/seating/1');\n } else {\n await this.navigationHelper.continue('/room/1', '/add-on/1');\n }\n }\n\n calculateGuestCount() {\n if (this.basket) {\n let count = 0;\n\n for (const item of this.basket.params.rooms) {\n count = count + item.getPersons();\n }\n return count;\n }\n return 2;\n }\n\n async goBack() {\n await this.navigationHelper.goBack();\n }\n\n private getBasket(queryParams: Partial) {\n const hotelCode = SearchComponent.ParseHotelCode(queryParams);\n const arrival = SearchComponent.ParseArrival(queryParams);\n const stay = SearchComponent.ParseStay(queryParams);\n const rooms = SearchComponent.ParseRooms(queryParams);\n const single = SearchComponent.ParseSingle(queryParams);\n if (hotelCode && arrival && stay && rooms) {\n const params: SearchParams = {\n hotelCode,\n arrival,\n stay,\n rooms,\n single,\n ArrivalDate: 0,\n ArrivalFullYear: 0,\n ArrivalMonthName: '',\n DepartueDate: 0,\n DepartueFullYear: 0,\n DepartueMonthName: '',\n BookingFlow: 1,\n RateCode: '',\n ConferenceRoomCode: '',\n };\n return this.basketService.create(params);\n } else {\n const basket = this.basketService.get();\n if (basket) {\n return basket;\n } else {\n throw new Error('Basket must not be empty');\n }\n }\n }\n\n private async getRooms(bookingIndex: number, customerId: number | undefined) {\n const loadedRooms = await this.loader.using(async () => {\n const rooms = [] as Room[];\n try {\n const guests = [] as GuestCombination[];\n\n const item = this.basket.params.rooms[bookingIndex];\n const guest = {\n AdultCount: item.get(GuestType.Adult),\n ChildCount: item.get(GuestType.Child),\n InfantCount: item.get(GuestType.Infant),\n SeniorCount: item.get(GuestType.Senior),\n TeenagerCount: item.get(GuestType.UnknownType1),\n } as GuestCombination;\n guests.push(guest);\n\n const availableRoomsAndRates = await this.hotelService.GetSpectraRoomInfo(\n this.applicationState.CurrentHotelCode,\n this.basket.params.arrival,\n DateHelper.addDays(this.basket.params.arrival, this.lengthOfStay),\n this.basket.params.RateCode ? this.basket.params.RateCode : '',\n guests,\n await this.localeService.getLocale(),\n customerId,\n );\n if (availableRoomsAndRates) {\n this.roomsAndRates = availableRoomsAndRates;\n for (const room of availableRoomsAndRates) {\n for (const rate of room.Rateplans) {\n if (rooms.length === 0) {\n const roomInfo = await this.hotelService.GetECommerceRoomInfo(\n this.applicationState.CurrentHotelCode,\n room.RoomType,\n await this.localeService.getLocale(),\n );\n roomInfo.FromPrice = rate.Price;\n if (roomInfo.MinPers <= this.basket.params.rooms[bookingIndex].getPersons()) {\n rooms.push(roomInfo);\n }\n } else if (rooms && rooms.filter((x) => x.Code === room.RoomType).length === 0) {\n const roomInfo = await this.hotelService.GetECommerceRoomInfo(\n this.applicationState.CurrentHotelCode,\n room.RoomType,\n await this.localeService.getLocale(),\n );\n roomInfo.FromPrice = rate.Price;\n\n if (roomInfo.MinPers <= this.basket.params.rooms[bookingIndex].getPersons()) {\n rooms.push(roomInfo);\n }\n } else {\n const existingRoom = rooms.find((x) => x.Code === room.RoomType);\n\n if (existingRoom && existingRoom.FromPrice > rate.Price) {\n existingRoom.FromPrice = rate.Price;\n }\n }\n }\n }\n }\n return rooms.sort((a, b) => (a.SortIndex > b.SortIndex ? 1 : -1));\n } catch (err) {\n return rooms;\n }\n }, 'LOA_Rooms');\n\n if (!loadedRooms) {\n throw new RoomLookupError(new RoomsNotAvailableReason());\n } else if (loadedRooms.every((item) => !item.FromPrice)) {\n throw new RoomLookupError(new RoomsSoldOutReason());\n }\n return loadedRooms;\n }\n\n private async GetRatesForRooms(roomCode: string, companyId: number | undefined) {\n return await this.loader.using(async () => {\n try {\n const rates = [] as Rate[];\n\n const usingPromotionCode = this.promotionService.getPromocode();\n let ratesWithPromotion = [] as GetPromotionCodeStatus[];\n let ratesWithCompanyAgreement = [] as CompanyAgreementDiscountResponseModel[];\n\n if (companyId) {\n ratesWithCompanyAgreement = await this.hotelService.GetCompanyAgreementDiscount(\n this.applicationState.CurrentHotelCode,\n companyId,\n );\n }\n\n if (usingPromotionCode) {\n ratesWithPromotion = await this.promotionService.getPromotionStatus(\n this.applicationState.CurrentHotelCode,\n usingPromotionCode,\n );\n\n let fromDate = DateHelper.addDays(new Date(), 365);\n let toDate = new Date();\n\n for (const promo of ratesWithPromotion) {\n if (DateHelper.FromUtcDate(promo.StayFromDate.toString() as UTCDateTimeString) < fromDate) {\n fromDate = DateHelper.FromUtcDate(promo.StayFromDate.toString() as UTCDateTimeString);\n }\n if (DateHelper.FromUtcDate(promo.StayToDate.toString() as UTCDateTimeString) > toDate) {\n toDate = DateHelper.FromUtcDate(promo.StayToDate.toString() as UTCDateTimeString);\n }\n }\n\n if (\n ratesWithPromotion.length !== 0 &&\n fromDate.getTime() >= this.basket.params.arrival.getTime() &&\n toDate.getTime() >= this.basket.params.arrival.getTime()\n ) {\n if (fromDate.getTime() !== this.basket.params.arrival.getTime()) {\n ratesWithPromotion = [] as GetPromotionCodeStatus[];\n }\n }\n\n if (\n ratesWithPromotion.length !== 0 &&\n fromDate.getTime() <= DateHelper.addDays(this.basket.params.arrival, this.basket.params.stay).getTime() &&\n toDate.getTime() <= DateHelper.addDays(this.basket.params.arrival, this.basket.params.stay).getTime()\n ) {\n if (\n toDate.getTime() !== DateHelper.addDays(this.basket.params.arrival, this.basket.params.stay).getTime()\n ) {\n ratesWithPromotion = [] as GetPromotionCodeStatus[];\n }\n }\n }\n\n if (this.roomsAndRates) {\n for (const item of this.roomsAndRates.filter((x) => x.RoomType === roomCode)) {\n for (const rate of item.Rateplans) {\n const rateInfo = await this.hotelService.GetECommerceRateInfo(\n this.applicationState.CurrentHotelCode,\n rate.RatePlan,\n await this.localeService.getLocale(),\n );\n rateInfo.Long = rate.Description;\n rateInfo.OriginalPrice = rate.Price;\n rateInfo.Price = rate.Price;\n rateInfo.Code = rate.RatePlan as RateCodeString;\n rateInfo.Name = rate.Name;\n\n if (ratesWithPromotion && ratesWithPromotion.length !== 0) {\n const possiblePromotionOnRate = ratesWithPromotion.find((x) => x.RatePlanCode === rateInfo.Code);\n if (possiblePromotionOnRate) {\n rateInfo.Price =\n rateInfo.OriginalPrice - rate.Price * (possiblePromotionOnRate.DiscountPercentage / 100);\n rateInfo.PromotionDisCount = possiblePromotionOnRate.DiscountPercentage;\n }\n }\n\n if (ratesWithCompanyAgreement && ratesWithCompanyAgreement.length !== 0) {\n const possibleAgreementOnRate = ratesWithCompanyAgreement.find((x) => x.RatePlanCode === rateInfo.Code);\n if (possibleAgreementOnRate) {\n rateInfo.Price =\n rateInfo.OriginalPrice -\n rate.Price * (parseFloat(possibleAgreementOnRate.DiscountPercentage) / 100);\n rateInfo.PromotionDisCount = parseFloat(possibleAgreementOnRate.DiscountPercentage);\n }\n }\n\n rates.push(rateInfo);\n }\n }\n }\n return rates.sort((a, b) => (a.Sortindex > b.Sortindex ? 1 : -1));\n } catch (err) {\n return undefined;\n }\n }, 'LOA_Rooms');\n }\n}\n\ninterface GalleryModel {\n accept: () => void;\n close: () => void;\n nextImage: (image: string) => void;\n prevImage: (image: string) => void;\n roomData: Room;\n rateData: Rate | undefined;\n selectedImage: string;\n imageArray: string[];\n}\n","
\n
\n {{ 'COM_Back' | t | async }}\n {{ 'COM_Continue' | t | async }}\n {{ 'COM_Continue' | t | async }}\n\n \n {{ applicationState.ChooseYourRoom | t | async }}\n

\n

\n {{ applicationState.ChooseYourRoom | t | async }}\n

\n

\n {{ applicationState.RoomLabel | t | async }} {{ data.bookingIndex | char }} ({{\n basket.params.rooms[data.bookingIndex] | guests | async\n }})\n

\n \n
\n\n \n \n \n \n {{ 'RPA_From' | t | async }}\n {{ room.item.FromPrice | price | async }}\n \n
\n
\n
\n \n \n \n \n

\n {{ 'RPA_Image' | t | async }}\n

\n
\n
\n
\n
\n
\n \n {{ 'RPA_More' | t | async }}\n \n \n {{ 'RPA_Selected' | t | async }}\n \n
\n
\n
\n
\n

\n
\n \n
\n
\n

\n \n

\n
\n \n \n \n
\n
\n
\n
\n \n
\n \n

\n
\n \n {{ rate.OriginalPrice | price | async }}\n {{ rate.Price | price | async }}\n \n
\n \n
\n
\n
\n
\n
\n
\n \n -{{ rate.PromotionDisCount }}\n %\n
\n \n \n \n \n

\n {{ 'RPA_Image' | t | async }}\n

\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n {{ 'RPA_More' | t | async }}\n
\n
\n
\n
\n \n
\n
\n \n \n {{ 'RPA_Selected' | t | async }}\n \n \n {{ 'APA_Book' | t | async }}\n \n
\n
\n
\n
\n
\n
\n
\n \n
\n \n \n \n
\n \n\n\n\n
\n \n
\n

\n
\n
\n

\n
\n \n {{ applicationState.ChooseRoomLabel | t | async }}
\n \n {{ 'COM_Close' | t | async }}\n \n \n \n
\n \n\n
\n \n
\n

\n
\n
\n

\n
\n
\n \n {{ 'COM_Close' | t | async }}\n \n \n {{ applicationState.ChooseRoomLabel | t | async }}\n \n
\n
\n

{{ 'RPA_MaxPersons' | t | async }}: {{ message.roomData.MaxPers }}

\n
\n
\n \n\n
\n \n
\n

\n
\n
\n

\n
\n \n
\n \n
\n\n\n
\n \n
\n

\n
\n
\n

\n
\n \n {{ 'APA_Book' | t | async }}
\n \n {{ 'COM_Close' | t | async }}\n \n \n \n
\n \n\n
\n \n
\n

\n
\n
\n

\n
\n
\n \n {{ 'COM_Close' | t | async }}\n \n \n {{ 'APA_Book' | t | async }}\n \n
\n
\n {{ 'COM_Price' | t | async }}\n {{ message.rateData.Price | price | async }}\n
\n
\n \n\n
\n \n
\n

\n
\n
\n

\n
\n \n
\n \n
\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { ApplicationStateService, BasketQueryParams, HotelCodeString, HotelService, Loader } from '../../../core';\nimport { StayAvailabilityResponse } from '../../../core/modules/hotel/data-hotel.service';\nimport { DateHelper, RoomGuests, UTCDateString, UTCDateTimeString } from '../../../helpers';\nimport { NavigationHelper } from '../../../helpers/navigation-helper';\n\n@Component({\n selector: 'app-calendar-guidance',\n templateUrl: './calendar-guidance.component.html',\n})\nexport class CalendarGuidanceComponent implements OnInit {\n arrival: Date | undefined;\n lengthOfStay: number | undefined;\n rateCode: string | undefined;\n dates: CalendarModel | undefined;\n\n constructor(\n private navigationHelper: NavigationHelper,\n private route: ActivatedRoute,\n private loader: Loader,\n private hotelService: HotelService,\n private applicationState: ApplicationStateService,\n ) {}\n\n async ngOnInit(): Promise {\n this.catchUrlParams();\n await this.buildCalendar();\n }\n\n async goBack() {\n await this.navigationHelper.goBack();\n }\n\n catchUrlParams() {\n const arrival = this.route.snapshot.queryParams['ArrivalDate'];\n if (arrival) {\n this.arrival = arrival;\n }\n\n const lengthOfStay = this.route.snapshot.queryParams['LengthOfStay'];\n if (lengthOfStay) {\n this.lengthOfStay = Number(lengthOfStay);\n }\n\n const rateCode = this.route.snapshot.queryParams['rateCode'];\n if (rateCode) {\n this.rateCode = rateCode;\n }\n }\n\n async buildCalendar(isReBuild = false) {\n if (this.arrival && this.lengthOfStay) {\n const arrival = new Date(this.arrival);\n const weekday = new Date(this.arrival).getDay();\n\n let firstDate = DateHelper.addDays(arrival, -weekday + 1 - 7);\n const lastDate = DateHelper.addDays(firstDate, 21);\n const daysBetween = DateHelper.daysBetween(firstDate, lastDate, 0);\n const daysToAdd = 21;\n\n if (this.calculateStatus(dayStatus.open, firstDate) === dayStatus.runOut) {\n firstDate = DateHelper.addDays(arrival, -weekday + 1);\n }\n\n const initAvailability = await this.loadAvailability(\n this.applicationState.CurrentHotelCode,\n firstDate,\n DateHelper.addDays(new Date(this.arrival), daysToAdd),\n undefined,\n isReBuild,\n this.rateCode,\n );\n\n let counter = 0;\n this.dates = {} as CalendarModel;\n this.dates.days = [] as Day[];\n while (counter < daysBetween) {\n const weekNumber = this.getWeekNumber(DateHelper.addDays(firstDate, counter));\n\n let day = {} as Day;\n\n day = {\n active: true,\n selected: this.selected(DateHelper.addDays(firstDate, counter)),\n status: this.calculateStatus(dayStatus.open, DateHelper.addDays(firstDate, counter)),\n date: DateHelper.addDays(firstDate, counter),\n weekNumber: undefined,\n } as Day;\n this.dates.days.push(day);\n\n if (day.date.getDay() === 0) {\n day = {\n active: true,\n selected: false,\n status: dayStatus.open,\n date: DateHelper.addDays(firstDate, counter),\n weekNumber,\n } as Day;\n this.dates.days.push(day);\n }\n\n counter++;\n }\n\n for (const item of initAvailability) {\n const date = DateHelper.FromUtcDate(item.Date.toString() as UTCDateTimeString);\n\n const object = this.dates.days.find(\n (x) =>\n x.date.getDate() === date.getDate() &&\n x.date.getMonth() === date.getMonth() &&\n x.date.getFullYear() === date.getFullYear() &&\n !x.weekNumber,\n );\n if (object) {\n object.status = this.calculateStatus(item.Reason, new Date());\n if (object.status !== dayStatus.open) {\n object.active = false;\n }\n }\n }\n } else {\n await this.navigationHelper.goBack();\n }\n }\n\n async changeArrival(day: Day) {\n if (day.active) {\n this.arrival = day.date;\n\n await this.buildCalendar(true);\n }\n }\n\n async moveNext() {\n const searhParams = this.navigationHelper.collectSearchParams() as BasketQueryParams;\n if (searhParams && this.arrival) {\n searhParams.ArrivalDate = DateHelper.format(this.arrival, 'YYYY-MM-DD') as UTCDateString;\n if (this.applicationState.BookingFlow === '1') {\n await this.navigationHelper.continue('/search', '/room/1', {\n queryParams: searhParams,\n });\n } else if (this.applicationState.BookingFlow === '2') {\n await this.navigationHelper.continue('/search', '/ratesRoom/1', {\n queryParams: searhParams,\n });\n }\n }\n }\n\n private getWeekNumber(d: Date): number {\n // Copy date so don't modify original\n d = new Date(+d);\n d.setHours(0, 0, 0);\n // Set to nearest Thursday: current date + 4 - current day number\n // Make Sunday's day number 7\n d.setDate(d.getDate() + 4 - (d.getDay() || 7));\n // Get first day of year\n const yearStart = new Date(d.getFullYear(), 0, 1);\n // Calculate full weeks to nearest Thursday\n const weekNo = Math.ceil(((d.valueOf() - yearStart.valueOf()) / 86400000 + 1) / 7);\n // Return array of year and week number\n return weekNo;\n }\n\n private async loadAvailability(\n hotelCode: HotelCodeString,\n start: Date,\n end: Date,\n rooms: RoomGuests[] | undefined,\n useLoader: boolean,\n rateCode: string | undefined,\n ) {\n return await this.loader.using(\n async () => {\n try {\n const res = await this.hotelService.GetRoomAvailability(hotelCode, start, end, rateCode, undefined);\n return res;\n } catch (err) {\n return [] as StayAvailabilityResponse[];\n }\n },\n 'LOA_Availability',\n useLoader,\n );\n }\n\n private calculateStatus(reason: string, currentMonth: Date) {\n if (\n reason === 'HOTELCLOSED' ||\n reason === 'HOTELCLOSEDDAYCOLOR' ||\n reason === 'NORATECODES' ||\n reason === 'NOTHINGVACANT' ||\n reason === 'CL'\n ) {\n return dayStatus.closed;\n } else if (reason === 'CFA') {\n return dayStatus.arrival;\n } else if (reason === 'CFD') {\n return dayStatus.departure;\n } else if (\n currentMonth.getMonth() < new Date().getMonth() &&\n currentMonth.getFullYear() === new Date().getFullYear()\n ) {\n return dayStatus.runOut;\n } else if (\n currentMonth.getMonth() === new Date().getMonth() &&\n currentMonth.getDate() < new Date().getDate() &&\n currentMonth.getFullYear() === new Date().getFullYear()\n ) {\n return dayStatus.runOut;\n } else {\n return dayStatus.open;\n }\n }\n\n private selected(date: Date) {\n if (this.arrival && this.lengthOfStay) {\n const arrival = new Date(this.arrival);\n const arr = new Date(arrival.getFullYear(), arrival.getMonth(), arrival.getDate());\n\n const departure = DateHelper.addDays(arr, this.lengthOfStay);\n const dep = new Date(departure.getFullYear(), departure.getMonth(), departure.getDate());\n\n const current = new Date(date.getFullYear(), date.getMonth(), date.getDate());\n\n return current.getTime() >= arr.getTime() && date.getTime() <= dep.getTime();\n }\n return false;\n }\n}\n\ninterface CalendarModel {\n days: Day[];\n currentMonth: string;\n currentYear: number;\n}\n\ninterface Day {\n date: Date;\n active: boolean;\n status: dayStatus;\n selected: boolean;\n weekNumber: number | undefined;\n}\n\nenum dayStatus {\n closed = '#F87E7D',\n open = 'white',\n arrival = '#ffb759',\n departure = '#729ef7',\n runOut = '#707070',\n}\n","\n\n
\n \n
\n
    \n
  • {{ 'CAL_Mon' | t | async }}
  • \n
  • {{ 'CAL_Tirs' | t | async }}
  • \n
  • {{ 'CAL_Ons' | t | async }}
  • \n
  • {{ 'CAL_Tors' | t | async }}
  • \n
  • {{ 'CAL_Fre' | t | async }}
  • \n
  • {{ 'CAL_Lor' | t | async }}
  • \n
  • {{ 'CAL_Sun' | t | async }}
  • \n
  • Week
  • \n
\n
\n
    \n \n \n {{ day.date.getDate() }}\n \n {{ day.weekNumber }}\n \n
\n
\n
\n
\n
\n

{{ 'CAL_Occupied' | t | async }}

\n\n
\n

{{ 'CAL_Available' | t | async }}

\n\n
\n

{{ 'CAL_Arrival' | t | async }}

\n\n
\n

{{ 'CAL_Departure' | t | async }}

\n\n
\n

Valgt

\n
\n \n
\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\n\nimport { ActivatedRoute } from '@angular/router';\nimport { LogService } from '@com/logging';\nimport {\n ApplicationStateService,\n BasketService,\n CustomerService,\n HotelType,\n LocaleService,\n SearchParams,\n} from 'src/app/core';\nimport { HotelCodeString, HotelService, Loader } from 'src/app/core';\nimport { GuestCombination, StayAvailabilityResponse } from 'src/app/core/modules/hotel/data-hotel.service';\nimport { ConfigHandler, DateHelper, GuestType, RoomGuests, UTCDateTimeString } from 'src/app/helpers';\nimport {\n CalendarInputComponent,\n CalendarInputDateChangeEvent,\n} from 'src/app/shared/components/calendar-input/calendar-input.component';\nimport { DesignConfiguration } from '../../shared/design/design-configuration';\n\nexport interface SearchFormConfig {\n single: boolean;\n hotels: HotelType[];\n hotelCode: HotelCodeString;\n arrival: Date;\n stay: number | null;\n rooms: RoomGuests[];\n maxNights: number;\n maxMonth: number;\n maxRooms: number;\n defaultStay: number;\n BookingFlow: number;\n RateCode: string;\n}\n\n@Component({\n selector: 'app-search-form',\n templateUrl: './search-form.component.html',\n})\nexport class SearchFormComponent implements SearchFormConfig, OnInit {\n @Input()\n set config(config: Partial | undefined) {\n if (config) {\n if (config.arrival === undefined) {\n this.arrivalNotSpecified = true;\n // this.continue = false;\n }\n const changes = ConfigHandler.Apply(this, config);\n if (changes.maxMonth) {\n this.lastAvailableDate = DateHelper.addMonth(this.firstAvailableDate, this.maxMonth);\n }\n if (changes.defaultStay && !changes.stay) {\n this.stay = this.defaultStay;\n changes.stay = true;\n }\n if (changes.arrival || changes.stay) {\n this.departure = this.stay ? DateHelper.addDays(this.arrival, this.stay) : null;\n }\n const now = DateHelper.today();\n if (this.arrival.getTime() < now.getTime()) {\n this.log.info(\n `SearchForm - Setting arrival to ${this.arrival} failed. Arrival is before now(${now}). Setting ${now}.`,\n );\n this.arrival = now;\n }\n if (changes.arrival && this.departure && this.arrival.getTime() >= this.departure.getTime()) {\n const departure = DateHelper.addDays(this.arrival, this.defaultStay);\n this.log.info(\n `SearchForm - Setting arrival to ${this.arrival} failed. Arrival is after departure(${this.departure}). Setting departure to ${departure}.`,\n );\n this.departure = departure;\n }\n if (changes.stay && this.departure && this.arrival.getTime() >= this.departure.getTime()) {\n const arrival = DateHelper.addDays(this.departure, -this.defaultStay);\n this.log.info(\n `SearchForm - Setting departure to ${this.departure} failed. Departure is before arrival(${this.arrival}). Setting arrival to ${arrival}.`,\n );\n this.arrival = arrival;\n }\n if (changes.hotels || changes.hotelCode || changes.rooms) {\n let hotel = this.hotels.find((x) => x.Code === this.hotelCode);\n\n if (!hotel && this.hotels.length > 0) {\n hotel = this.hotels[0];\n }\n if (hotel !== this.hotel) {\n this.hotel = hotel;\n this.hotelCode = this.hotel ? this.hotel.Code : ('' as any as HotelCodeString);\n this.hotelChange.emit(this.hotel);\n }\n\n this.rooms = SearchFormComponent.FilterRoomsGuests(this.rooms, this.hotel);\n\n if (this.rooms === undefined || this.applicationState.ReturnFromOnlySeating === 'true') {\n this.rooms = [new RoomGuests([2, 0, 0, 0, 0, 0])];\n }\n }\n\n this.MaxRoomsReached();\n }\n void this.modifyToFitTab();\n\n void this.designconfig.addPageBackground();\n }\n\n @Output() submitted = new EventEmitter();\n @Output() hotelChange = new EventEmitter();\n @ViewChild('departureCalendar', { static: false }) departureCalendar: CalendarInputComponent | undefined;\n @ViewChild('departureCalendarMobile', { static: false })\n departureCalendarMobile: CalendarInputComponent | undefined;\n single = true;\n hotels = [] as HotelType[];\n hotelCode = '' as any as HotelCodeString;\n arrival = DateHelper.today();\n defaultStay = 0;\n stay = this.defaultStay as number | null;\n departure = this.stay ? DateHelper.addDays(this.arrival, this.stay) : null;\n rooms = [new RoomGuests([2, 0, 0, 0, 0, 0])];\n maxNights = 2;\n maxMonth = 12;\n maxRooms = 1;\n maxRoomsReached = false;\n adultGuestType = GuestType.Adult;\n adultCountValues = [] as number[];\n guestCountValues = [] as number[];\n firstAvailableDate = DateHelper.today();\n lastAvailableDate = DateHelper.addMonth(this.firstAvailableDate, this.maxMonth);\n hotel: HotelType | undefined;\n BookingFlow = 1;\n RateCode = '';\n continue = true;\n showMessage = false;\n messageType = 'noneRooms';\n restrictionDays = '0';\n dateSpan = '';\n arrivalNotSpecified = true;\n logo = '';\n loadingdData = false;\n isArrivalDate = true;\n lastTabArrival = new Date();\n deeplinkRateCode: string | undefined;\n designPack = 'Default';\n\n mobile = {\n currentIndex: 0 as number | undefined,\n };\n\n available = [] as StayAvailabilityResponse[];\n spectraAvailability: StayAvailabilityResponse | undefined;\n guestToolTip = [] as GuestDescriptionUI[];\n\n constructor(\n private log: LogService,\n private customerService: CustomerService,\n private localeService: LocaleService,\n private loader: Loader,\n private basketService: BasketService,\n private activatedRoute: ActivatedRoute,\n private designconfig: DesignConfiguration,\n private hotelService: HotelService,\n public applicationState: ApplicationStateService,\n ) {}\n\n async ngOnInit(): Promise {\n await new Promise((resolve) => setTimeout(() => resolve(), 0)); // wait for router to initialize\n\n if (this.config && this.config.arrival) {\n this.arrival = this.config.arrival;\n }\n\n if (this.hotelCode === ('' as HotelCodeString) && this.applicationState.CurrentHotelCode) {\n this.hotelCode = this.applicationState.CurrentHotelCode;\n }\n\n await this.buildCalendarData(this.arrival, true, false);\n\n this.basketService.basketBadgeNumberSet = '0';\n this.buildAQCArray();\n this.logo = this.applicationState.ApplicationLogo;\n }\n\n buildAQCArray() {\n const number = Number(this.applicationState.MaxAQC);\n let i = 0;\n\n while (i <= number) {\n this.guestCountValues.push(i);\n this.adultCountValues.push(i);\n i++;\n }\n this.adultCountValues.splice(0, 1);\n }\n\n async buildCalendarData(startMonth: Date, useloader: boolean, resetAvailability: boolean) {\n if (resetAvailability === true) {\n this.available = [];\n }\n\n this.loadingdData = true;\n\n let stay = this.stay !== null && this.stay !== 0 ? this.stay : 2;\n const depart = DateHelper.addMonth(startMonth, 3);\n let result = [] as StayAvailabilityResponse[];\n // If the site should load from scratch, we show loadscreen and push the resultdates to a array, and show it. The months we load depends if Arrivaldate is given in the url\n if (useloader) {\n let departure = depart;\n let arrivalDate = startMonth;\n // If ArrivalDate is defined in url\n this.activatedRoute.queryParams.subscribe((params) => {\n const arrival = params['ArrivalDate'];\n const rateCode = params['RateCode'];\n const lengthOfStay = params['LengthOfStay'];\n if (lengthOfStay) {\n stay = lengthOfStay;\n }\n this.deeplinkRateCode = rateCode;\n if (arrival) {\n this.arrivalNotSpecified = false;\n const toDate = DateHelper.ConvertToUTCDate(arrival);\n arrivalDate = toDate;\n departure = DateHelper.addMonth(arrivalDate, 3);\n }\n });\n\n result = await this.loadAvailability(\n this.hotelCode,\n DateHelper.addMonth(arrivalDate, -1),\n departure,\n stay,\n this.rooms,\n undefined,\n useloader,\n this.deeplinkRateCode,\n );\n }\n // If the site is allready loaded, and the next button in the calendar is clicked. We load the next couple of month\n else {\n const existsEnd = this.available.find(\n (x) =>\n DateHelper.FromUtcDate(x.Date.toString() as UTCDateTimeString).getMonth() === depart.getMonth() &&\n DateHelper.FromUtcDate(x.Date.toString() as UTCDateTimeString).getFullYear() === depart.getFullYear(),\n );\n const existsStart = this.available.find(\n (x) => DateHelper.FromUtcDate(x.Date.toString() as UTCDateTimeString).getMonth() === startMonth.getMonth() - 1,\n );\n if (existsEnd === undefined) {\n result = await this.loadAvailability(\n this.hotelCode,\n startMonth,\n depart,\n stay,\n this.rooms,\n undefined,\n useloader,\n this.deeplinkRateCode,\n );\n }\n // If the site is allready loaded, and the prev button in the calendar is clicked. We load the prev couple of month\n else if (existsStart === undefined) {\n result = await this.loadAvailability(\n this.hotelCode,\n DateHelper.addMonth(startMonth, -1),\n DateHelper.addMonth(depart, -1),\n stay,\n this.rooms,\n undefined,\n useloader,\n this.deeplinkRateCode,\n );\n }\n }\n\n for (const item of result) {\n if (!(this.available.indexOf(item) > -1)) {\n this.available.push(item);\n }\n }\n\n for (const item of result) {\n if (!(this.available.indexOf(item) > -1)) {\n this.available.push(item);\n }\n }\n await this.checkForAvailability();\n\n this.loadingdData = false;\n }\n\n async modifyToFitTab() {\n if (this.stay !== null && this.stay > 25) {\n this.stay = this.defaultStay;\n this.arrival = this.lastTabArrival;\n }\n\n if (this.stay === null) {\n this.stay = this.defaultStay;\n }\n this.departure = DateHelper.addDays(this.arrival, this.stay);\n this.applicationState.DepartureDate = this.departure;\n }\n\n async monthChange(month: Date) {\n await this.buildCalendarData(month, false, false);\n }\n\n async loadHotels() {\n return await this.loader.using(\n async () => {\n try {\n return await this.hotelService.GetECommerceDepartmentsInformation();\n } catch (err: any) {\n this.log.error(`SearchRoute failed to load hotels. ${err.message}`);\n throw err;\n }\n },\n 'LOA_HotelInformation',\n false,\n );\n }\n\n async onAddRoomClick() {\n this.log.debug('SearchForm onAddRoomClick()');\n\n let guests = new RoomGuests();\n\n if (this.rooms.length > 0) {\n const guestCountNumber = this.rooms[0].get(GuestType.Adult);\n guests = new RoomGuests([guestCountNumber, 0]);\n } else {\n guests = new RoomGuests([2, 0]);\n }\n\n this.mobile.currentIndex = this.rooms.push(guests) - 1;\n this.MaxRoomsReached();\n await this.checkForAvailability();\n }\n\n MaxRoomsReached() {\n if (\n this.hotel !== undefined &&\n this.hotel !== null &&\n this.hotel.Settings.BookMaxRooms !== undefined &&\n this.hotel.Settings.BookMaxRooms !== null\n ) {\n this.maxRooms = this.hotel.Settings.BookMaxRooms - 1;\n } else {\n this.maxRooms = 1;\n }\n if (this.rooms.length > this.maxRooms) {\n this.maxRoomsReached = true;\n } else {\n this.maxRoomsReached = false;\n }\n }\n\n async onRemovePersonClick(guest: RoomGuests) {\n this.log.debug(`SearchForm onRemovePersonClick(${guest})`);\n this.rooms = this.rooms.filter((g) => g !== guest);\n this.mobile.currentIndex = this.rooms.length - 1;\n this.MaxRoomsReached();\n await this.checkForAvailability();\n }\n\n async onGuestQuantityChange(index: number, type: GuestType, value: number, values: number[]) {\n this.log.debug(`SearchForm onGuestQuantityChange(${index}, ${type}, ${value}, ${values})`);\n if (values.indexOf(value) !== -1) {\n this.rooms[index] = new RoomGuests(this.rooms[index].asArray());\n this.rooms[index].set(type, value);\n } else {\n this.log.debug('SearchForm onGuestQuantityChange(). Unsupported value selected.');\n }\n await this.checkForAvailability();\n }\n\n async onHotelChange(hotelCode: HotelCodeString) {\n this.log.debug(`SearchForm onHotelChange(${hotelCode})`);\n this.config = { hotelCode };\n\n this.stay = this.stay !== null ? this.stay : 2;\n\n this.applicationState.DepartureDate = DateHelper.addDays(this.arrival, this.stay);\n\n await this.buildCalendarData(this.arrival, true, true);\n this.designconfig.applyTheme().then().catch(undefined);\n this.logo = this.applicationState.ApplicationLogo;\n this.buildAQCArray();\n }\n\n async onArrivalChange(e: CalendarInputDateChangeEvent) {\n this.isArrivalDate = false;\n this.log.debug(`SearchForm onArrivalChange(${JSON.stringify(e)})`);\n const arrival = e.date || new Date();\n this.stay = this.stay !== null ? this.stay : 2;\n this.lastTabArrival = arrival;\n\n this.config = { arrival };\n if (this.departureCalendar) {\n this.departureCalendar.showCalendar();\n }\n if (this.departureCalendarMobile) {\n this.departureCalendarMobile.showCalendar();\n }\n this.applicationState.DepartureDate = DateHelper.addDays(arrival, this.stay);\n\n this.arrivalNotSpecified = false;\n await this.checkForAvailability();\n this.isArrivalDate = false;\n }\n\n async onDepartureChange(e: CalendarInputDateChangeEvent) {\n this.log.debug(`SearchForm onDepartureChange(${JSON.stringify(e)})`);\n const departure = e.date;\n\n let stay = departure ? DateHelper.daysBetween(this.arrival, departure, 0) : null;\n\n const res = this.arrival.getTimezoneOffset();\n // Check if departure is spanding from summertime to wintertime and back.\n if (stay && departure && departure.getTimezoneOffset() > res) {\n this.stay = stay - 1;\n stay = this.stay;\n } else {\n this.stay = stay;\n stay = this.stay;\n }\n\n this.config = { stay };\n this.arrivalNotSpecified = false;\n await this.checkForAvailability();\n\n if (this.departureCalendar) {\n this.departureCalendar.closeCalendar();\n }\n if (this.departureCalendarMobile) {\n this.departureCalendarMobile.closeCalendar();\n }\n this.isArrivalDate = true;\n }\n\n async onFormSubmit(e: Event) {\n this.log.debug('SearchForm onFormSubmit()');\n\n e.preventDefault();\n e.stopPropagation();\n if (this.hotel) {\n this.submitted.next({\n hotelCode: this.hotel.Code,\n arrival: this.arrival,\n stay: this.stay || 1,\n rooms: this.rooms,\n single: this.single,\n ArrivalDate: 0,\n ArrivalFullYear: 0,\n ArrivalMonthName: '',\n DepartueDate: 0,\n DepartueFullYear: 0,\n DepartueMonthName: '',\n BookingFlow: this.BookingFlow,\n RateCode: this.RateCode,\n ConferenceRoomCode: '',\n });\n }\n\n this.basketService.hideBasket();\n }\n\n private async loadAvailability(\n hotelCode: HotelCodeString,\n start: Date,\n end: Date,\n stay: number,\n rooms: RoomGuests[],\n customerId: number | undefined,\n useLoader: boolean,\n rateCode: string | undefined,\n ) {\n this.log.debug(\n `CalendarRoute loadAvailability(${hotelCode}, ${start}, ${end}, ${stay}, ${rooms}, ${customerId}, ${rateCode})`,\n );\n\n let guestCount = 0;\n\n rooms.forEach((x) => {\n guestCount = guestCount + x.getPersons();\n });\n\n const company = this.customerService.getCustomer().Company;\n\n if (useLoader) {\n return await this.loader.using(\n async () => {\n try {\n const res = await this.hotelService.GetRoomAvailability(\n hotelCode,\n start,\n end,\n rateCode,\n company ? company.Id : undefined,\n );\n return res;\n } catch (err) {\n return [] as StayAvailabilityResponse[];\n }\n },\n 'LOA_Availability',\n false,\n );\n } else {\n try {\n const res = await this.hotelService.GetRoomAvailability(\n hotelCode,\n start,\n end,\n rateCode,\n company ? company.Id : undefined,\n );\n return res;\n } catch (err) {\n return [] as StayAvailabilityResponse[];\n }\n }\n }\n\n private async checkForAvailability() {\n if (this.hotelCode && this.hotelCode && this.applicationState.DepartureDate) {\n const guests = [] as GuestCombination[];\n\n for (const item of this.rooms) {\n const guest = {\n AdultCount: item.get(GuestType.Adult),\n ChildCount: item.get(GuestType.Child),\n InfantCount: item.get(GuestType.Infant),\n SeniorCount: item.get(GuestType.Senior),\n TeenagerCount: item.get(GuestType.UnknownType1),\n } as GuestCombination;\n\n guests.push(guest);\n }\n\n const company = this.customerService.getCustomer().Company;\n\n const availableRoomsAndRates = await this.hotelService.GetSpectraRoomInfo(\n this.applicationState.CurrentHotelCode,\n this.arrival,\n this.applicationState.DepartureDate,\n this.RateCode,\n guests,\n await this.localeService.getLocale(),\n company ? company.Id : undefined,\n );\n\n this.continue = availableRoomsAndRates.length !== 0;\n if (!this.arrivalNotSpecified) {\n this.showMessage = availableRoomsAndRates.length === 0;\n }\n }\n }\n\n private static FilterRoomsGuests(roomGuestsList: RoomGuests[], hotel: HotelType | undefined) {\n return hotel\n ? roomGuestsList.map((roomGuests) => {\n const newRoomGuests = new RoomGuests();\n hotel.Aqcs.forEach((aqc) => newRoomGuests.set(aqc.AQC, roomGuests.get(aqc.AQC)));\n return newRoomGuests;\n })\n : roomGuestsList;\n }\n}\n\nexport interface GuestDescriptionUI {\n guestType: string;\n ageFromTo: string;\n translation: string;\n}\n","
\n \n
\n
\n
\n
\n
\n
\n
\n
\n

\n {{ hotel.Name }}\n

\n

\n
\n
\n
\n
\n
1 && !single\">\n

\n \n {{ applicationState.HotelLabel | t | async }}\n

\n \n \n
\n
\n {{ item.value && item.value.Name }}\n
\n \n
\n
\n \n {{ item.value.Name }}\n \n \n \n
\n

\n \n {{ 'SFO_ParamsHeader' | t | async }}\n

\n
\n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n

\n {{ 'SFO_NoRooms' | t | async }}\n

\n
\n
\n \n
\n
1 }\">\n
\n

\n \n {{ applicationState.GuestInRoomLabel | t | async }}\n 1\">{{ index | char }}\n

\n
\n
\n
\n 1\n }\">\n
\n \n \n
\n
\n
1\" class=\"col pl-0 right text-right\">\n \n
\n
\n
\n \n \n
\n
1\">\n \n

\n ({{ guestType.From }}-{{ guestType.To }}\n +\n {{ 'APA_Year' | t | async }})\n

\n
\n
\n \n
\n
\n \n \n \n {{ count }}\n \n \n
\n
\n
\n
\n \n

\n ({{ guestType.From }}-{{ guestType.To }}\n +\n {{ 'APA_Year' | t | async }})\n

\n
\n
\n \n
\n \n \n \n
\n
\n
{{ data.count }}
\n
\n
\n \n \n \n
\n
\n
\n
\n
\n
\n
\n
\n
1\" class=\"outside-absolute-right hide-m hide-s\">\n \n \n
\n
\n \n
\n \n {{ applicationState.MoreRoomLabel | t | async }}\n \n \n {{ 'COM_Continue' | t | async }}\n \n
\n \n
\n
\n \n \n \n\n\n
\n \n
\n
\n
\n
\n
\n
1 && !single\">\n

\n \n {{ applicationState.HotelLabel | t | async }}\n

\n \n \n
\n
\n {{ item.value && item.value.Name }}\n
\n \n
\n
\n \n {{ item.value.Name }}\n \n \n \n
\n

\n \n {{ 'SFO_ParamsHeader' | t | async }}\n

\n
\n \n
\n
\n \n \n
\n
\n \n \n
\n
\n\n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n

\n {{ 'SFO_MinLOS' | t | async }} {{ restrictionDays }}\n {{ 'SFO_Nights' | t | async }}\n

\n

\n {{ 'SFO_MaxLOS' | t | async }} {{ restrictionDays }}\n {{ 'SFO_Nights' | t | async }}\n

\n \n ({{ dateSpan }})\n

\n

\n {{ 'SFO_NoRooms' | t | async }}\n

\n
\n
\n \n
\n
1 }\">\n
\n

\n \n {{ applicationState.GuestInRoomLabel | t | async }}\n 1\">{{ index | char }}\n

\n
\n
\n
\n 1\n }\">\n
\n \n \n
\n
\n
1\" class=\"col pl-0 right text-right\">\n \n
\n
\n
\n \n \n
\n
1\">\n \n

\n ({{ guestType.From }}-{{ guestType.To }}\n +\n {{ 'APA_Year' | t | async }})\n

\n
\n
\n \n
\n
\n \n \n \n {{ count }}\n \n \n
\n
\n
\n
\n \n

\n ({{ guestType.From }}-{{ guestType.To }}\n +\n {{ 'APA_Year' | t | async }})\n

\n
\n
\n \n
\n \n \n \n
\n
\n
{{ data.count }}
\n
\n
\n \n \n \n
\n
\n
\n
\n
\n
\n
\n
\n
1\" class=\"outside-absolute-right hide-m hide-s\">\n \n \n
\n
\n \n
\n \n {{ applicationState.MoreRoomLabel | t | async }}\n \n \n {{ 'COM_Continue' | t | async }}\n \n
\n \n
\n \n \n \n\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { LogService } from '@com/logging';\nimport { combineLatest, from, Observable } from 'rxjs';\nimport { map, switchMap, tap } from 'rxjs/operators';\nimport { AppQueryParams } from 'src/app/app.component';\nimport {\n ApplicationStateService,\n BasketQueryParams,\n BasketService,\n ConfigService,\n HotelService,\n HotelType,\n Loader,\n Locale,\n LocaleService,\n OriginEnum,\n PromotionService,\n SearchParams,\n} from 'src/app/core';\nimport { DateHelper } from 'src/app/helpers';\nimport { Step, StepList } from 'src/app/modules/step-list';\nimport { NavigationHelper } from '../../helpers/navigation-helper';\nimport { DesignConfiguration } from '../../shared/design/design-configuration';\nimport { SearchFormConfig } from './search-form.component';\n\n@Component({\n selector: 'app-search',\n templateUrl: './search.component.html',\n})\nexport class SearchComponent implements OnInit {\n private hotels$ = this.localeService.locale$.pipe(switchMap((locale) => from(this.loadHotels(locale))));\n\n config$ = combineLatest([\n this.route.queryParams as Observable,\n from(this.loadConfigurations()),\n this.hotels$,\n ]).pipe(\n map(([queryParams, configuration, hotels]) => {\n const config: Partial = {\n single: SearchComponent.ParseSingle(queryParams),\n hotels,\n hotelCode: SearchComponent.ParseHotelCode(queryParams),\n arrival: SearchComponent.ParseArrival(queryParams),\n stay: SearchComponent.ParseStay(queryParams),\n rooms: SearchComponent.ParseRooms(queryParams),\n maxNights: configuration.MaxNights,\n maxMonth: configuration.MaxMonth,\n maxRooms: configuration.MaxRoomBook,\n defaultStay: configuration.stay,\n BookingFlow: SearchComponent.ParseBookingType(queryParams),\n RateCode: SearchComponent.ParseRateCode(queryParams),\n };\n if (config.BookingFlow) {\n this.applicationState.BookingFlow = config.BookingFlow.toString();\n }\n return config;\n }),\n tap((config) => {\n this.basketService.setHotelCode(config.hotelCode || null);\n }),\n );\n\n constructor(\n private log: LogService,\n private route: ActivatedRoute,\n private hotelService: HotelService,\n private loader: Loader,\n private basketService: BasketService,\n private localeService: LocaleService,\n private config: ConfigService,\n private stepList: StepList,\n private applicationState: ApplicationStateService,\n private designconfig: DesignConfiguration,\n private navigationHelper: NavigationHelper,\n private promotionService: PromotionService,\n ) {}\n\n async ngOnInit() {\n await this.loader.using(\n async () => {\n await this.hotelService.BuildApplicationState();\n },\n 'LOA_Configuration',\n false,\n );\n\n await this.designconfig.addPageBackground();\n\n window.scrollTo(0, 0);\n this.applicationState.Origin = OriginEnum.OnlineBooking;\n this.stepList.set(Step.Search);\n this.basketService.clear();\n }\n\n async onSearchFormSubmit(params: SearchParams) {\n if (params.BookingFlow === 1) {\n this.applicationState.BookingFlow = params.BookingFlow.toString();\n await this.navigationHelper.continue(\n '/search',\n '/room/1',\n { queryParams: BasketService.BuildQueryParams(params) },\n true,\n );\n } else if (params.BookingFlow === 2) {\n this.applicationState.BookingFlow = params.BookingFlow.toString();\n await this.navigationHelper.continue(\n '/search',\n '/ratesRoom/1',\n { queryParams: BasketService.BuildQueryParams(params) },\n true,\n );\n } else {\n throw new TypeError('BookingFlow: ' + params.BookingFlow.toString() + ' is not supported!');\n }\n\n document.body.classList.remove('addBackGround');\n document.body.classList.remove('addBackGroundWithAnimation');\n document.body.style.backgroundImage = '';\n }\n\n async onHotelChange(hotel: HotelType) {\n this.log.debug(`SearchRoute onHotelChange(${hotel.Code})`);\n\n if (hotel.Code !== this.applicationState.CurrentHotelCode) {\n this.promotionService.promocode$.next(undefined);\n }\n await this.designconfig.applyHotelChange(hotel.Code);\n }\n\n private async loadConfigurations() {\n this.log.debug('SearchRoute loadConfigurations()');\n return await this.loader.using(\n async () => {\n try {\n const [{ MaxMonth, MaxNights, MaxRoomBook }, { stay }] = await Promise.all([\n this.config.getSearchParams(),\n this.config.getInitialSearchParams(),\n ]);\n\n return { MaxMonth, MaxNights, MaxRoomBook, stay };\n } catch (err: any) {\n this.log.error(`SearchRoute failed to load hotels. ${err.message}`);\n throw err;\n }\n },\n 'LOA_Configuration',\n false,\n );\n }\n\n private async loadHotels(lang: Locale) {\n this.log.debug(`SearchRoute loadHotels(${lang})`);\n return await this.loader.using(\n async () => {\n try {\n return await this.hotelService.GetECommerceDepartmentsInformation();\n } catch (err: any) {\n this.log.error(`SearchRoute failed to load hotels. ${err.message}`);\n throw err;\n }\n },\n 'LOA_HotelInformation',\n false,\n );\n }\n\n static ParseSingle(params: Partial) {\n return params.Single ? BasketService.ParseSingle(params.Single) : false;\n }\n\n static ParseHotelCode(params: Partial) {\n const hotelCode = params.HotelCode || (params as any).hotelCode; // Legacy hotelCode used - for customer activation\n return hotelCode ? BasketService.ParseHotelCode(hotelCode) : undefined;\n }\n\n static ParseArrival(params: Partial) {\n return params.ArrivalDate ? DateHelper.FromUtcDate(params.ArrivalDate) : undefined;\n }\n\n static ParseBookingType(params: Partial) {\n return params.BookingFlow ? +params.BookingFlow : undefined;\n }\n\n static ParseRateCode(params: Partial) {\n return params.RateCode ? params.RateCode : undefined;\n }\n\n static ParseStay(params: Partial) {\n return params.LengthOfStay !== undefined ? BasketService.ParseStay(params.LengthOfStay) : undefined;\n }\n\n static ParseRooms(params: Partial) {\n return params.RoomCounts ? BasketService.ParseRooms(params.RoomCounts) : undefined;\n }\n}\n","
\n \n
\n","import { Component, Input, OnChanges, Output, EventEmitter } from '@angular/core';\nimport { MatCalendarCellClassFunction } from '@angular/material/datepicker/calendar-body';\nimport moment, { Moment } from 'moment';\nimport { LocaleService } from '../../core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Component({\n selector: 'seating-date-calendar',\n templateUrl: './seating-date-calendar.component.html',\n})\nexport class SeatingDateCalendarComponent implements OnChanges {\n updateComponent = false;\n\n @Input() selectedDate$!: BehaviorSubject;\n @Input() minDate: Moment;\n @Input() maxDate: Moment;\n @Input() highlightDates: HighlightDate[] = [];\n @Input() availableDates: Moment[] | null = null;\n @Input() startAt: Date | undefined;\n @Input() update = false;\n @Output() dateClicked = new EventEmitter();\n\n constructor(Locale: LocaleService) {\n // Initialize minDate and maxDate that the user can choose\n this.minDate = moment(new Date()).startOf('day');\n this.maxDate = moment(new Date()).add(1, 'year').endOf('day');\n // For some reason, whenever the lang is changed, the calendar is not updated\n // We force update it to update the month description\n Locale.locale$.subscribe(() => {\n this.updateComponent = true;\n setTimeout(() => {\n this.updateComponent = false;\n }, 0);\n });\n }\n\n ngOnChanges() {\n this.update = false;\n\n this.updateComponent = true;\n setTimeout(() => {\n this.updateComponent = false;\n }, 0);\n }\n\n highlightedDates: MatCalendarCellClassFunction = (cellDate, view) => {\n if (view === 'month') {\n const foundDate = this.highlightDates.find((d) => {\n return cellDate.isSame(d.date, 'day');\n });\n\n if (foundDate) {\n return foundDate.inBasket ? 'seating-date-calendar__inbasket' : 'seating-date-calendar__vacant';\n }\n\n return '';\n }\n\n if (view === 'year') {\n const foundYear = this.highlightDates.some((d) => {\n return cellDate.isSame(d.date, 'month') && !d.inBasket;\n });\n\n if (foundYear) {\n return 'seating-date-calendar__vacant';\n }\n\n return '';\n }\n\n if (view === 'multi-year') {\n const foundYear = this.highlightDates.some((d) => {\n return cellDate.isSame(d.date, 'year') && !d.inBasket;\n });\n\n if (foundYear) {\n return 'seating-date-calendar__vacant';\n }\n\n return '';\n }\n\n return '';\n };\n\n async setCalendarDate(date: Moment | null) {\n if (date) {\n this.selectedDate$.next(date);\n this.dateClicked.emit(date);\n }\n }\n\n // This needs to be an arrow function, otherwise the context of `this` is lost\n dateFilter = (date: Moment): boolean => {\n if (this.availableDates) {\n const available = this.availableDates.some((d) => d.isSame(date, 'day'));\n return date.isSameOrAfter(this.minDate) && date.isSameOrBefore(this.maxDate) && available;\n } else {\n return date.isSameOrAfter(this.minDate) && date.isSameOrBefore(this.maxDate);\n }\n };\n}\n\nexport interface HighlightDate {\n date: Date;\n occupied: boolean;\n inBasket: boolean;\n}\n","
\n \n
\n
\n
\n {{ 'CAL_Occupied' | t | async }}\n
\n \n
\n {{ 'COM_AddedToBasket' | t | async }}\n
\n
\n
\n","import { Component, Input } from '@angular/core';\nimport { NavigationHelper } from '../../helpers/navigation-helper';\nimport { Moment } from 'moment';\nimport { ApplicationStateService, SeatingData } from '../../core';\n\n@Component({\n selector: 'app-seating-standalone-card',\n templateUrl: './seating-standalone-card.component.html',\n})\nexport class SeatingStandaloneCardComponent {\n isMaxHeight = false;\n\n @Input() imageSrc = '';\n @Input() header = '';\n @Input() description = '';\n @Input() characteristics = '';\n @Input() date!: Moment;\n @Input() seatingData!: SeatingData;\n\n constructor(private navigationHelper: NavigationHelper, private applicationState: ApplicationStateService) {}\n\n setMaxHeight(isMaxHeight: boolean) {\n this.isMaxHeight = isMaxHeight;\n }\n\n async onNavigate() {\n if (this.characteristics === null) {\n return;\n }\n\n const queryParams = {\n date: this.date ? this.date.format('DD-MM-YYYY') : null,\n hotelCode: this.applicationState.CurrentHotelCode,\n };\n\n // TODO: Check if available - perhaps check parent component if its even rendered in the first place\n\n await this.navigationHelper.continue('seating-standalone', `seating-standalone/${this.characteristics}`, {\n queryParams: queryParams,\n });\n }\n}\n","\n
\n
\n \n {{ 'RPA_Image' | t | async }}\n
\n
\n
\n
\n
\n
\n\n","import { Component } from '@angular/core';\nimport moment, { Moment } from 'moment';\nimport { ApplicationStateService, HotelService, Loader, LocaleService, SeatingData } from '../../core';\nimport { BehaviorSubject, combineLatest, from } from 'rxjs';\nimport { map, switchMap } from 'rxjs/operators';\nimport { HighlightDate } from './seating-date-calendar.component';\nimport { sortBy, uniqBy } from 'lodash-es';\nimport { NavigationHelper } from 'src/app/helpers/navigation-helper';\n\n@Component({\n selector: 'app-seating-standalone',\n templateUrl: './seating-standalone.component.html',\n})\nexport class SeatingStandaloneComponent {\n chosenDate$ = new BehaviorSubject(null);\n minDate: Moment;\n maxDate: Moment;\n state: ApplicationStateService | undefined;\n\n seatingData$ = combineLatest([this.locale.locale$, this.chosenDate$]).pipe(\n switchMap(([locale, chosenDate]) =>\n from(this.buildSeatingData()).pipe(\n map((seatings) => {\n const { availableDates, highlightedDates } = this.getAvailableDates(seatings);\n const syncedSeatings = this.syncSeatings(seatings, chosenDate);\n\n return {\n locale,\n seatings: syncedSeatings,\n chosenDate,\n highlightedDates,\n availableDates,\n };\n }),\n ),\n ),\n );\n\n constructor(\n private hotelService: HotelService,\n private applicationState: ApplicationStateService,\n private locale: LocaleService,\n private loader: Loader,\n private navigationHelper: NavigationHelper,\n ) {\n // Initialize minDate and maxDate that the user can choose\n this.minDate = moment(new Date()).startOf('day');\n this.maxDate = moment(new Date()).add(1, 'year').endOf('day');\n this.state = this.applicationState;\n }\n\n resetDate() {\n this.chosenDate$.next(null);\n }\n\n async buildSeatingData() {\n return await this.loader.using(async () => {\n // TODO: Should hotelCode also be link-able here?\n const seatingSpectra = await this.hotelService.GetECommerceSeatings(\n this.applicationState.CurrentHotelCode,\n this.minDate.toDate(),\n this.maxDate.toDate(),\n await this.locale.getLocale(),\n );\n\n let seatings: SeatingStandaloneUIModel[] = [];\n if (seatingSpectra && seatingSpectra.length !== 0) {\n const seatingsData = seatingSpectra.filter((x) => x.Rates !== null);\n\n // Create a map to map the characteristics that are already added\n const alreadyAddedCharacteristics: Partial<{ [K in string]: boolean }> = {};\n for (const seatingData of seatingsData) {\n const availableDates: Moment[] = [];\n const highlightedDates: HighlightDate[] = seatingData.Rates.map((val) => {\n // Only add to available dates if booking is available\n if (val.MaxPers > 0) {\n availableDates.push(moment(val.Arrival));\n }\n\n return {\n date: new Date(val.Arrival),\n occupied: val.MaxPers === 0,\n inBasket: false,\n };\n });\n\n // If we already got a characteristics just updated the available dates\n if (alreadyAddedCharacteristics[seatingData.Characteristics]) {\n seatings = seatings.map((s) => {\n if (s.characteristics === seatingData.Characteristics) {\n return {\n ...s,\n highlightedDates: [...s.highlightedDates, ...highlightedDates],\n availableDates: [...s.availableDates, ...availableDates],\n };\n }\n\n return s;\n });\n continue;\n }\n\n const seatingPortal = await this.hotelService.GetECommerceSeatingPortalInfo(\n this.applicationState.CurrentHotelCode,\n this.minDate.toDate(),\n this.maxDate.toDate(),\n seatingData.ItemNumber,\n false,\n '',\n );\n\n const info = seatingPortal.find((x) => x.ID === seatingData.ItemNumber);\n if (info) {\n const seatingUiModel: SeatingStandaloneUIModel = {\n image: info.Image,\n header: info.Name,\n description: info.Long,\n sortIndex: info.SortIndex,\n seatingId: info.ID,\n seatingData: seatingData,\n characteristics: seatingData.Characteristics,\n highlightedDates: highlightedDates,\n availableDates: availableDates,\n show: true,\n };\n\n seatings.push(seatingUiModel);\n alreadyAddedCharacteristics[seatingData.Characteristics] = true;\n }\n }\n }\n\n seatings.sort((a, b) => a.sortIndex - b.sortIndex);\n return seatings;\n });\n }\n\n getAvailableDates(seatings: SeatingStandaloneUIModel[]) {\n let highlightedDates: HighlightDate[] = [];\n let availableDates: Moment[] = [];\n\n for (const seating of seatings) {\n availableDates = [...availableDates, ...seating.availableDates];\n highlightedDates = [...highlightedDates, ...seating.highlightedDates];\n }\n\n // We sort it with occupied being prioritized as first\n const newHighDates = sortBy(highlightedDates, (date) => {\n // We create a date at the start of the day, because we wan't to prioritize occupancy over time of day\n const startOfDay = moment(date.date).startOf('day');\n return `${startOfDay.toISOString()}_${date.occupied ? '1' : '0'}`;\n });\n\n // We can assume it's prioritized, then we just need to make the array unique\n const uniqHighlightedDates = uniqBy(newHighDates, (date) => date.date.toDateString());\n\n return {\n highlightedDates: uniqHighlightedDates,\n availableDates,\n };\n }\n\n async goBack() {\n await this.navigationHelper.goBack(true);\n }\n\n syncSeatings(seatings: SeatingStandaloneUIModel[], chosenDate: Moment | null) {\n if (chosenDate === null) {\n return seatings;\n }\n\n const minDate = chosenDate.clone().startOf('day');\n const maxDate = chosenDate.clone().endOf('day');\n for (const seating of seatings) {\n // Check if seating has any dates that meets the threshold\n seating.show =\n seating.highlightedDates.some((d) => minDate.isBefore(d.date) && maxDate.isAfter(d.date) && !d.occupied) &&\n seating.availableDates.length !== 0;\n }\n\n return seatings;\n }\n}\n\ninterface SeatingStandaloneUIModel {\n image: string;\n header: string;\n description: string;\n sortIndex: number;\n seatingId: string;\n seatingData: SeatingData;\n characteristics: string;\n highlightedDates: HighlightDate[];\n availableDates: Moment[];\n show: boolean;\n}\n","
\n\n
\n
\n
\n
\n
\n \n \n Nulstil valgte dato\n
\n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n
\n
\n","import { Component } from '@angular/core';\nimport { ActivatedRoute, Params } from '@angular/router';\nimport { NavigationHelper } from '../../../helpers/navigation-helper';\nimport { BehaviorSubject, combineLatest, from } from 'rxjs';\nimport { map, switchMap } from 'rxjs/operators';\nimport moment, { Moment } from 'moment';\nimport {\n ApplicationStateService,\n Basket,\n BasketService,\n BookingSeating,\n HotelService,\n Loader,\n LocaleService,\n RateCodeString,\n RoomCodeString,\n SearchParams,\n TrackingService,\n} from '../../../core';\nimport { first, last, range, sortBy, uniqBy } from 'lodash-es';\nimport { HighlightDate } from '../seating-date-calendar.component';\nimport { SearchComponent } from '../../search/search.component';\nimport { DateHelper, UTCDateString } from 'src/app/helpers';\nimport { SeatProfileType } from 'src/app/core/modules/payment/reservation.service';\n\n@Component({\n selector: 'app-seating-standalone-page',\n templateUrl: './seating-standalone-page.component.html',\n})\nexport class SeatingStandalonePageComponent {\n showAnimation = false;\n state: ApplicationStateService | undefined;\n chosenDate$ = new BehaviorSubject(null);\n basketInfo$ = new BehaviorSubject([]);\n basket!: Basket;\n seatingsToBasketArray: BookingSeating[] = [];\n paramDateFormat = 'DD-MM-YYYY';\n characteristics = '';\n canContinue = false;\n seatingParams: SeatingParams = {\n date: '',\n characteristics: '',\n hotelCode: '',\n };\n\n data$ = combineLatest([this.route.queryParamMap, this.route.paramMap, this.chosenDate$, this.locale.locale$]).pipe(\n map(([queryParams, params, chosenDate]) => {\n this.basketInfo$.next([]);\n const date = queryParams.get('date') ?? new Date();\n const hotelCode = queryParams.get('hotelCode') ?? this.applicationState.CurrentHotelCode;\n const characteristics = params.get('characteristics') ?? '';\n\n return {\n chosenDate: chosenDate ?? moment(date, this.paramDateFormat),\n characteristics: characteristics,\n hotelCode: hotelCode,\n };\n }),\n switchMap((data) =>\n from(this.getSeating(data.hotelCode, data.characteristics, data.chosenDate)).pipe(\n map((seatingData) => {\n this.seatingParams = {\n date: data.chosenDate.format(this.paramDateFormat).toString(),\n characteristics: data.characteristics,\n hotelCode: data.hotelCode,\n };\n\n if (this.chosenDate$.getValue() === null) {\n this.chosenDate$.next(data.chosenDate);\n }\n\n if (seatingData) {\n if (!data.chosenDate.isSame(seatingData.chosenDate, 'd')) {\n this.seatingParams.date = seatingData.chosenDate.format(this.paramDateFormat).toString();\n this.chosenDate$.next(seatingData.chosenDate);\n }\n seatingData.minDate = first(seatingData.availableDates)?.clone().startOf('day') ?? seatingData.minDate;\n seatingData.maxDate = last(seatingData.availableDates)?.clone().endOf('day') ?? seatingData.maxDate;\n this.basket = this.rebuildBasket(this.route.snapshot.queryParams, seatingData.chosenDate);\n seatingData.seating = this.rebuildSeatingUi(seatingData.seating);\n }\n\n this.navigationHelper.continue(\n `seating-standalone/${this.seatingParams.characteristics}`,\n `seating-standalone/${this.seatingParams.characteristics}`,\n {\n queryParams: {\n hotelCode: this.seatingParams.hotelCode,\n date: this.seatingParams.date,\n },\n queryParamsHandling: 'merge',\n replaceUrl: true,\n },\n );\n\n return {\n seatingUi: seatingData?.seating,\n minDate: seatingData?.minDate,\n maxDate: seatingData?.maxDate,\n availableDates: seatingData?.availableDates,\n chosenDate: seatingData?.chosenDate,\n };\n }),\n ),\n ),\n );\n\n priceInformation$ = combineLatest([this.basketInfo$]).pipe(\n map(([basketInfo]) => {\n const price = basketInfo.reduce((prevVal, curVal) => prevVal + curVal.price * curVal.numberOfTickets, 0);\n\n return {\n price,\n };\n }),\n );\n\n constructor(\n private route: ActivatedRoute,\n private navigationHelper: NavigationHelper,\n private hotelService: HotelService,\n private applicationState: ApplicationStateService,\n private locale: LocaleService,\n private loader: Loader,\n private basketService: BasketService,\n private trackingService: TrackingService,\n ) {\n this.state = this.applicationState;\n }\n\n setShowAnimation(isMaxHeight: boolean) {\n this.showAnimation = isMaxHeight;\n }\n\n async onNavigateBack() {\n await this.navigationHelper.goBack();\n }\n\n async onNavigateToCheckout() {\n if (!this.basket.bookings.some((b) => b.Seatings && b.Seatings.length > 0)) {\n return;\n }\n await this.navigationHelper.continue(`seating-standalone/${this.seatingParams.characteristics}`, '/customer', {\n queryParams: {\n date: this.seatingParams.date,\n hotelCode: this.seatingParams.hotelCode,\n },\n });\n }\n\n async getSeating(hotelCode: string, characteristics: string, date: Moment): Promise {\n return await this.loader.using(async () => {\n // Initialize minDate and maxDate that the user can choose\n const minDate = moment(new Date()).startOf('day');\n const maxDate = moment(new Date()).add(1, 'year').endOf('day');\n\n const seatingSpectra = await this.hotelService.GetEcommerceSeating(\n hotelCode,\n minDate.toDate(),\n maxDate.toDate(),\n await this.locale.getLocale(),\n characteristics,\n );\n\n if (seatingSpectra.length !== 0) {\n const seatingsData = seatingSpectra.filter((x) => x.Rates !== null);\n\n let seating: SeatingStandaloneUIModel | null = null;\n for (const seatingData of seatingsData) {\n const seatingPortalInfo = await this.hotelService.GetECommerceSeatingPortalInfo(\n hotelCode,\n minDate.toDate(),\n maxDate.toDate(),\n seatingData.ItemNumber,\n false,\n '',\n );\n const info = seatingPortalInfo.find((x) => x.ID === seatingData.ItemNumber);\n\n if (info) {\n let availableDates: HighlightDate[] = [];\n const seatItem = seatingData.Rates.reduce(\n (prevVal, curVal, currentIndex) => {\n const price = info.SeatItems[currentIndex].Price;\n\n if (!seating) {\n availableDates.push({\n date: curVal.Arrival,\n occupied: curVal.MaxPers === 0,\n inBasket: false,\n });\n }\n\n const seatingRate: SeatingStandaloneSeatItem = {\n Description: seatingData.Description,\n SKU: seatingData.ItemNumber,\n price: price,\n maxTickets: range(curVal.MaxPers + 1),\n timeSlots: [],\n chosenTicketAmount: 0,\n chosenTimeslot: null,\n };\n\n return seatingRate;\n },\n {\n Description: '',\n SKU: '',\n price: 0,\n maxTickets: [],\n timeSlots: [],\n chosenTicketAmount: 0,\n chosenTimeslot: null,\n },\n );\n\n if (seating) {\n seating.seatItems = [...seating.seatItems, seatItem];\n continue;\n }\n\n availableDates = sortBy(\n uniqBy(availableDates, (date) => `${date.date.toString()}_${date.occupied}`),\n (d) => d.date,\n );\n\n seating = {\n header: info.Name,\n image: info.Image,\n description: info.Long,\n characteristics: seatingData.Characteristics,\n highlightedDates: availableDates,\n seatItems: [seatItem],\n };\n }\n }\n\n if (seating !== null) {\n // TODO: No available dates - should we display something?\n // Calculate all available dates from if they are occupied\n const availableDates = seating.highlightedDates.reduce((prevVal, curVal) => {\n if (!curVal.occupied) {\n return [...prevVal, moment(curVal.date)];\n }\n\n return [...prevVal];\n }, []);\n\n // Check if the date chosen is available\n const isDateAvailable = availableDates.some((d) => d.isSame(date, 'd'));\n // Decide whether the date should change\n const pickedDate = !isDateAvailable && availableDates[0] ? availableDates[0] : date;\n\n // Generate all available timeslots for the specific day\n const timeSlots = availableDates.filter((d) => d.isSame(pickedDate, 'd'));\n\n seating.seatItems = seating.seatItems.map((s) => {\n s.chosenTimeslot = timeSlots[0].toISOString();\n s.timeSlots = timeSlots;\n return s;\n });\n\n return {\n minDate: minDate,\n maxDate: maxDate,\n seating,\n availableDates: availableDates,\n chosenDate: pickedDate,\n };\n }\n }\n\n return null;\n });\n }\n\n updateAmountBasket(type: string, seating: SeatingStandaloneUIModel, seatItem: SeatingStandaloneSeatItem) {\n const existingSeating = this.seatingsToBasketArray.find(\n (x) =>\n x.VareNr == seatItem.SKU && x.Date.toString() == moment(seatItem.chosenTimeslot).format('YYYY-MM-DDTHH:mm:ss'),\n );\n\n if (type === 'increase' && seatItem.maxTickets.length > seatItem.chosenTicketAmount) {\n this.trackingService.ecommerceAddToCart({\n item_id: seatItem.SKU,\n item_name: seating.characteristics,\n item_category: 'Seating_Standalone',\n price: seatItem.price,\n quantity: 1,\n });\n seatItem.chosenTicketAmount = seatItem.chosenTicketAmount + 1;\n } else if (type === 'decrease' && seatItem.chosenTicketAmount > 0) {\n this.trackingService.ecommerceRemoveFromCart({\n item_id: seatItem.SKU,\n item_name: seating.characteristics,\n item_category: 'Seating_Standalone',\n price: seatItem.price,\n quantity: 1,\n });\n seatItem.chosenTicketAmount = seatItem.chosenTicketAmount - 1;\n } else return;\n\n this.persistBasket(seating, seatItem, existingSeating);\n if (this.seatingsToBasketArray.length === 0) this.canContinue = false;\n }\n\n updateTimeBasket($event: Event, seating: SeatingStandaloneUIModel, seatItem: SeatingStandaloneSeatItem) {\n const existingSeating = this.seatingsToBasketArray.find(\n (x) =>\n x.VareNr == seatItem.SKU && x.Date.toString() == moment(seatItem.chosenTimeslot).format('YYYY-MM-DDTHH:mm:ss'),\n );\n\n this.persistBasket(seating, seatItem, existingSeating);\n }\n\n persistBasket(\n seating: SeatingStandaloneUIModel,\n seatItem: SeatingStandaloneSeatItem,\n existingSeating: BookingSeating | undefined,\n ) {\n const dateObject = seatItem.timeSlots[0].toDate();\n\n if (existingSeating) {\n if (seatItem.chosenTicketAmount === 0) {\n const objectIndex = this.seatingsToBasketArray.indexOf(existingSeating, 0);\n this.seatingsToBasketArray.splice(objectIndex, 1);\n } else {\n existingSeating.TicketTotal = seatItem.chosenTicketAmount;\n const seatGuests = [] as SeatProfileType[];\n const guest: SeatProfileType = {\n Count: seatItem.chosenTicketAmount,\n Date:\n dateObject !== undefined\n ? (moment(seatItem.chosenTimeslot).format('YYYY-MM-DD') as UTCDateString)\n : (DateHelper.toServerDateFormatString(new Date()) as UTCDateString),\n Name: seatItem.Description,\n Price: seatItem.price,\n Time: moment(seatItem.chosenTimeslot).format('HH:mm'),\n SeatId: seatItem.SKU,\n VareNr: seatItem.SKU,\n AQC: undefined,\n };\n seatGuests.push(guest);\n\n existingSeating.SeatGuest = seatGuests;\n }\n } else if (seatItem.chosenTicketAmount !== 0) {\n this.canContinue = true;\n const seatGuests = [] as SeatProfileType[];\n const guest: SeatProfileType = {\n Count: seatItem.chosenTicketAmount,\n Date:\n dateObject !== undefined\n ? (DateHelper.toServerDateFormatString(moment(seatItem.chosenTimeslot).toDate()) as UTCDateString)\n : (DateHelper.toServerDateFormatString(new Date()) as UTCDateString),\n Name: seatItem.Description,\n Price: seatItem.price,\n Time: moment(seatItem.chosenTimeslot).format('HH:mm'),\n SeatId: seatItem.SKU,\n VareNr: seatItem.SKU,\n AQC: undefined,\n };\n seatGuests.push(guest);\n\n const seatingToBasket: BookingSeating = {\n SeatCode: 'DELT',\n Name: seatItem.Description,\n Id: seatItem.Description,\n seatId: 0,\n VareNr: seatItem.SKU,\n type: 'SeatingBooking',\n SinglePrice: seatItem.price,\n SeatRate: seating.characteristics,\n //@ts-ignore\n Date: moment(seatItem.chosenTimeslot).format('YYYY-MM-DDTHH:mm:ss'),\n day: dateObject.getDate().toString(),\n month: DateHelper.getTranslatedMonth(dateObject.getMonth()),\n year: dateObject.getFullYear().toString(),\n Time: moment(seatItem.chosenTimeslot).format('HH:mm'),\n SeatGuest: seatGuests,\n TicketTotal: seatItem.chosenTicketAmount,\n };\n\n this.seatingsToBasketArray.push(seatingToBasket);\n }\n\n const basket = this.basketService.get();\n\n if (basket) {\n basket.bookings[0] = {\n Seatings: this.seatingsToBasketArray,\n HasPromotionForCustomer: false,\n RateCode: '' as RateCodeString,\n RateName: '',\n RoomCode: '' as RoomCodeString,\n RoomName: '',\n RateDescription: '',\n ConferenceRateCode: '',\n ConferenceRoomCode: '',\n Price: undefined,\n OriginalPrice: undefined,\n };\n\n this.basketService.set(basket);\n }\n }\n\n private rebuildSeatingUi(seating: SeatingStandaloneUIModel) {\n seating.seatItems.forEach((seatItem) => {\n const basketInfo = this.basketInfo$.getValue();\n const basketSeating = basketInfo.find(\n (b) => b.timeSlot.isSame(seatItem.chosenTimeslot) && b.SKU === seatItem.SKU,\n );\n\n if (basketSeating) {\n seatItem.chosenTimeslot = basketSeating.timeSlot.toISOString();\n seatItem.chosenTicketAmount = basketSeating.numberOfTickets;\n }\n });\n\n return seating;\n }\n\n private rebuildBasket(queryParams: Params, chosenDate: Moment) {\n const hotelCode = SearchComponent.ParseHotelCode(queryParams);\n const arrival = chosenDate.toDate();\n const basket = this.basketService.get();\n\n if (basket) {\n const basketInfo: SeatingStandaloneBasketInfo[] = [];\n for (const booking of basket.bookings) {\n if (!booking.Seatings) continue;\n for (const seating of booking.Seatings) {\n for (const seatGuest of seating.SeatGuest) {\n const timeSlot = moment(seatGuest.Date, 'YYYY-MM-DD');\n timeSlot.add(seatGuest.Time, 'h');\n\n const info: SeatingStandaloneBasketInfo = {\n SKU: seatGuest.VareNr,\n price: seatGuest.Price,\n timeSlot: timeSlot,\n numberOfTickets: seatGuest.Count,\n };\n basketInfo.push(info);\n }\n }\n }\n this.basketInfo$.next(basketInfo);\n return basket;\n }\n\n if (hotelCode && arrival) {\n const params: SearchParams = {\n hotelCode,\n arrival,\n stay: 30,\n rooms: [],\n single: false,\n ArrivalDate: 0,\n ArrivalFullYear: 0,\n ArrivalMonthName: '',\n DepartueDate: 0,\n DepartueFullYear: 0,\n DepartueMonthName: '',\n BookingFlow: 1,\n RateCode: '',\n ConferenceRoomCode: '',\n };\n this.basketService.basketBadgeNumberSet = '0';\n return this.basketService.create(params);\n }\n throw new Error('Basket must not be empty');\n }\n}\n\ninterface SeatingStandaloneUIModel {\n header: string;\n image: string;\n description: string;\n characteristics: string;\n highlightedDates: HighlightDate[];\n seatItems: SeatingStandaloneSeatItem[];\n}\n\ninterface SeatingStandaloneSeatItem {\n Description: string;\n SKU: string;\n price: number;\n maxTickets: number[];\n timeSlots: Moment[];\n chosenTimeslot: string | null;\n chosenTicketAmount: number;\n}\n\ninterface SeatingStandaloneInfo {\n minDate: Moment;\n maxDate: Moment;\n seating: SeatingStandaloneUIModel;\n availableDates: Moment[];\n chosenDate: Moment;\n}\n\ninterface SeatingStandaloneBasketInfo {\n SKU: string;\n price: number;\n numberOfTickets: number;\n timeSlot: Moment;\n}\n\ninterface SeatingParams {\n date: string;\n hotelCode: string;\n characteristics: string;\n}\n","
\n
\n {{ 'COM_Back' | t | async }}\n {{ 'COM_Continue' | t | async }}\n {{ 'COM_Continue' | t | async }}\n\n \n {{ state.EventLabel | t | async }}\n

\n\n \n
\n\n
\n
\n
\n
\n
\n \n
\n
\n
\n {{ basketData.price | price | async }}\n \n {{ 'BIN_BasketGoToCheckout' | t | async }}\n \n
\n
\n
\n
\n
\n

{{ data.seatingUi.header }}

\n
\n
\n
\n \"\"\n
\n \n
\n \n \n
\n
\n
\n {{ seatItem.Description }}\n
\n
\n
\n
\n
\n
\n \n \n \n
\n
\n
\n \n \n \n {{ seatItem.chosenTicketAmount }} / {{ seatItem.maxTickets.length }}\n \n \n \n
\n
\n
\n
+ {{ seatItem.price | price | async }}
\n
\n
\n
\n
\n
\n
\n
\n
\n \n\n","import { Component, ElementRef, OnDestroy, OnInit, QueryList, ViewChildren } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { LogService } from '@com/logging';\nimport { BehaviorSubject } from 'rxjs';\nimport { AppQueryParams } from 'src/app/app.component';\nimport moment, { Moment } from 'moment';\nimport {\n ApplicationStateService,\n AQC,\n Booking,\n BookingSeating,\n RateCodeString,\n RoomCodeString,\n SeatingData,\n SeatingRate,\n} from 'src/app/core';\nimport { BasketQueryParams, BasketService, Loader, LocaleService, SearchParams, TrackingService } from 'src/app/core';\nimport { DateHelper, Guid, UTCDateString, UTCDateTimeString } from 'src/app/helpers';\nimport { HotelService } from '../../core/modules/hotel/hotel.service';\nimport { SeatProfileType } from '../../core/modules/payment';\nimport { NavigationHelper } from '../../helpers/navigation-helper';\nimport { SearchComponent } from '../search/search.component';\nimport { HighlightDate } from '../seating-standalone/seating-date-calendar.component';\n@Component({\n selector: 'app-seating',\n templateUrl: './seating.component.html',\n})\nexport class SeatingComponent implements OnInit, OnDestroy {\n private seatingsAreChoosen = false;\n chosenDate$ = new BehaviorSubject(null);\n minDate: Moment | undefined;\n maxDate: Moment | undefined;\n selectedSeating: SeatingUiModel | undefined;\n basket = this.getBasket(this.route.snapshot.queryParams as AppQueryParams);\n onlySeating = false;\n canContinue = false;\n seatingSelected: Guid | undefined;\n sealectedSeatingDate: Date | undefined;\n seatingsToBasketArray: BookingSeating[] = [];\n state: ApplicationStateService | undefined;\n isBookingFlow = false;\n startAt: Date | undefined;\n seatingWrapper: SeatingWrapper[] | undefined;\n updateCalendar = false;\n lang = '';\n\n // Calendar\n highlightedDates: HighlightDate[] = [];\n availableDates: Moment[] = [];\n dateHasBeenClicked = false;\n\n @ViewChildren('seatingItem') seatingItemRef!: QueryList;\n @ViewChildren('seatingSelectedItem') seatingSelectedItemRef!: QueryList;\n\n constructor(\n private log: LogService,\n private route: ActivatedRoute,\n private loader: Loader,\n private basketService: BasketService,\n private hotelService: HotelService,\n private localeService: LocaleService,\n private trackingService: TrackingService,\n private applicationState: ApplicationStateService,\n private navigationHelper: NavigationHelper,\n ) {\n this.chosenDate$.subscribe(async (x) => {\n if (x) {\n if (\n this.dateHasBeenClicked ||\n (this.basket.bookings &&\n this.basket.bookings[0] &&\n this.basket.bookings[0].Seatings &&\n this.seatingsAreChoosen)\n ) {\n await this.loader.using(async () => {\n const convertedDate = DateHelper.convertMomentToDate(x);\n const res = await this.buildSeatingData(convertedDate, convertedDate);\n this.seatingWrapper = res;\n\n if (this.selectedSeating) {\n const dates = await this.buildAvailibleDates(this.basket.bookings);\n this.selectedSeating.seatingTimesUiModel = dates;\n }\n }, 'LOA_Availability' as any);\n }\n }\n });\n }\n\n async ngOnInit() {\n this.lang = await this.localeService.getLocale(); //\n\n this.localeService.locale$.subscribe(async (x) => {\n if (x) {\n if (this.lang !== x) {\n await this.loadPageContent();\n this.lang = x;\n }\n }\n });\n\n await this.loadPageContent();\n\n if (this.onlySeating && this.seatingWrapper && this.seatingWrapper.length === 0) {\n await this.navigationHelper.navigateToPage('/add-on/1');\n }\n }\n\n async loadPageContent() {\n await this.loader.using(async () => {\n this.state = this.applicationState;\n\n document.body.classList.remove('addBackGround');\n document.body.classList.remove('addBackGroundWithAnimation');\n document.body.style.backgroundImage = '';\n\n if (this.basket.bookings.length !== 0 && this.basket.bookings[0].RoomName !== '') {\n this.isBookingFlow = true;\n }\n\n // Check if any selected seating in basket\n if (\n this.basket &&\n this.basket.bookings[0] &&\n this.basket.bookings[0].Seatings &&\n this.basket.bookings[0].Seatings.length !== 0\n ) {\n this.seatingsAreChoosen = true;\n }\n\n if (this.basket.bookings.length === 0) {\n this.basket.params.rooms = [];\n }\n if (this.basket.bookings[0] && this.basket.bookings[0].RoomCode !== ('' as RoomCodeString)) {\n this.onlySeating = true;\n } else {\n await this.buildCalendarData(undefined);\n this.onlySeating = false;\n }\n if (this.basket.bookings[0] && this.basket.bookings[0].Seatings && this.basket.bookings[0].Seatings[0]) {\n this.seatingSelected = this.basket.bookings[0].Seatings[0].Id as Guid;\n this.sealectedSeatingDate = this.basket.bookings[0].Seatings[0].Date;\n }\n\n document.body.classList.remove('addBackGround');\n document.body.style.backgroundImage = '';\n await this.prepareNavigation();\n\n if (!this.seatingSelected) {\n const res = await this.buildSeatingData(new Date(), DateHelper.addMonth(new Date(), 12));\n this.seatingWrapper = res;\n } else {\n if (this.sealectedSeatingDate) {\n let res = [] as SeatingWrapper[];\n\n if (!this.onlySeating) {\n res = await this.buildSeatingData(new Date(), DateHelper.addMonth(new Date(), 12));\n } else {\n const convertedDate = DateHelper.convertMomentToDate(moment(this.sealectedSeatingDate));\n res = await this.buildSeatingData(convertedDate, convertedDate);\n }\n this.seatingWrapper = res;\n if (this.selectedSeating) {\n const dates = await this.buildAvailibleDates(this.basket.bookings);\n this.selectedSeating.seatingTimesUiModel = dates;\n }\n }\n }\n }, 'LOA_Availability' as any);\n }\n\n calendarOutput(date: Moment) {\n const oldValue = this.dateHasBeenClicked;\n this.dateHasBeenClicked = true;\n this.selectedSeating = undefined;\n if (!oldValue) {\n this.chosenDate$.next(date);\n }\n }\n\n async resetDate() {\n await this.loader.using(async () => {\n this.chosenDate$.next(null);\n this.dateHasBeenClicked = false;\n const res = await this.buildSeatingData(new Date(), DateHelper.addMonth(new Date(), 12));\n this.seatingWrapper = res;\n this.deselectAllSeatings();\n this.selectedSeating = undefined;\n await this.buildCalendarData(undefined);\n\n this.updateCalendar = true;\n }, 'LOA_Availability' as any);\n }\n\n ngOnDestroy(): void {\n this.navigationHelper.resetNextPage();\n }\n\n async prepareNavigation() {\n const url = '/' + this.route.snapshot.url.join('/');\n await this.navigationHelper.continueMobileNavigationbar(false, true, url, '/add-on');\n }\n\n buildSelectedSeatsFromBasket(basketSeating: BookingSeating[], seatings: SeatingTimesUiModel[]) {\n this.seatingsToBasketArray = basketSeating;\n for (const item of seatings) {\n const res = basketSeating.find(\n (x) =>\n x.Id === item.vareNr &&\n DateHelper.FromUtcDate(x.Date.toString() as UTCDateString).getDate() ===\n DateHelper.FromUtcDate(item.arrival.toString() as UTCDateString).getDate(),\n );\n\n if (res && res.TicketTotal) {\n item.SelectedseatId = res.Id;\n item.SelectedDate = res.Date;\n item.SelectedName = res.Name;\n item.totalPrice = res.TicketTotal * res.SinglePrice;\n item.ticketSelected = res.TicketTotal;\n const clock = item.clock.find((x) => x.time === res.Time);\n if (clock) {\n const clockSelected = clock.time ? clock.time : undefined;\n clock.selectedTime = clockSelected;\n }\n }\n }\n }\n\n async onMoveToNextClick() {\n await this.navigationHelper.continue('/seating/1', '/add-on/1');\n }\n\n async onSeatingClick(e: Event | null, seating: SeatingUiModel, forceState: boolean | null = null) {\n if (seating.selected === forceState) {\n return;\n }\n this.deselectAllSeatings();\n\n if (e) {\n e.stopPropagation();\n }\n\n if (!this.onlySeating && !this.dateHasBeenClicked) {\n await this.buildCalendarData(seating.characteristics, true);\n this.chosenDate$.next(moment(seating.date));\n this.startAt = DateHelper.convertMomentToDate(moment(seating.date));\n this.updateCalendar = true;\n }\n\n if (this.selectedSeating && seating.seatingPlanId === this.selectedSeating.seatingPlanId) {\n this.selectedSeating = undefined;\n return;\n }\n\n seating.selected = forceState ? forceState : !seating.selected;\n this.selectedSeating = seating;\n const res = await this.buildAvailibleDates(this.basket.bookings);\n this.selectedSeating.seatingTimesUiModel = res;\n this.trackingService.ecommerceViewItem({\n item_id: seating.seatingPlanId,\n item_name: seating.characteristics,\n item_category: 'Seating',\n });\n }\n\n deselectAllSeatings() {\n if (this.seatingWrapper) {\n for (const w of this.seatingWrapper) {\n w.data.forEach((x) => {\n x.selected = false;\n });\n }\n }\n }\n\n onSeatingDateChange(event: string, rate: SeatingTimesUiModel) {\n rate.clock.forEach((item) => {\n item.selectedTime = undefined;\n });\n const clock = rate.clock.find((x) => x.time === event);\n if (clock) {\n clock.selectedTime = event;\n rate.tickets = this.buildAvailibleTickets(clock.maxAvailible);\n }\n }\n\n buildTicketPrice(price: number, ticketCount: number) {\n const totalPrice = price * ticketCount;\n return totalPrice;\n }\n\n buildAvailibleTickets(ticketsNumber: number) {\n const availibleTickets = [] as number[];\n let counter = 0;\n while (ticketsNumber !== 0 && counter !== ticketsNumber + 1) {\n availibleTickets.push(counter);\n counter++;\n }\n return availibleTickets;\n }\n\n async onRateSelect(seating: SeatingUiModel, rate: SeatingTimesUiModel) {\n // Quantity / Price change from \"Select\" (none) to an actual quantity.\n const seatingToBasket = {} as BookingSeating;\n\n rate.totalPrice = this.buildTicketPrice(rate.price, rate.ticketSelected);\n const clockDate = rate.clock.find((x) => x.selectedTime);\n\n if (clockDate) {\n seatingToBasket.Date = clockDate.date;\n seatingToBasket.Time = clockDate.time;\n } else {\n seatingToBasket.Date = rate.clock[0].date;\n seatingToBasket.Time = rate.clock[0].time;\n }\n\n const midDate = DateHelper.FromUtcDate(rate.arrival.toString() as UTCDateString);\n const month = DateHelper.getTranslatedMonth(midDate.getMonth());\n\n seatingToBasket.day = midDate.getDate().toString();\n seatingToBasket.month = month;\n seatingToBasket.year = midDate.getFullYear().toString();\n seatingToBasket.Id = rate.vareNr;\n seatingToBasket.Name = rate.name;\n seatingToBasket.SinglePrice = rate.price;\n seatingToBasket.TicketTotal = rate.ticketSelected;\n seatingToBasket.SeatRate = seating.characteristics;\n seatingToBasket.SeatingPlanName = seating.name;\n seatingToBasket.SeatCode = 'DELT';\n seatingToBasket.seatId = rate.ID;\n seatingToBasket.type = 'SeatingBooking';\n seatingToBasket.returnUrl = {};\n\n const seatGuests = [] as SeatProfileType[];\n const modiDate = DateHelper.FromUtcDate(seatingToBasket.Date.toString() as UTCDateString);\n const guest: SeatProfileType = {\n Count: seatingToBasket.TicketTotal ? seatingToBasket.TicketTotal : 0,\n Date: seatingToBasket.Date\n ? (DateHelper.toServerDateFormatString(modiDate) as UTCDateString)\n : (DateHelper.toServerDateFormatString(new Date()) as UTCDateString),\n Name: seatingToBasket.Name,\n Price: seatingToBasket.SinglePrice,\n Time: seatingToBasket.Time ? seatingToBasket.Time : '',\n SeatId: seatingToBasket.Id,\n VareNr: rate.vareNr,\n AQC: rate.AQC,\n };\n seatGuests.push(guest);\n\n seatingToBasket.SeatGuest = seatGuests;\n this.seatingsToBasketArray.push(seatingToBasket);\n\n const bask = this.basket.bookings[0];\n\n if (bask) {\n this.basket.bookings[0] = {\n Seatings: this.seatingsToBasketArray,\n HasPromotionForCustomer: bask.HasPromotionForCustomer,\n RateCode: bask.RateCode,\n RateName: bask.RateName,\n RoomCode: bask.RoomCode,\n RoomName: bask.RoomName,\n RateDescription: bask.RateDescription ? bask.RateDescription : '',\n AddOns: bask.AddOns,\n TableSeatings: bask.TableSeatings,\n ConferenceRateCode: '',\n OriginalPrice: bask.OriginalPrice,\n ConferenceRoomCode: '',\n Price: bask.Price,\n };\n } else {\n this.basket.bookings[0] = {\n Seatings: this.seatingsToBasketArray,\n HasPromotionForCustomer: false,\n RateCode: '' as RateCodeString,\n RateName: '',\n RoomCode: '' as RoomCodeString,\n RoomName: '',\n RateDescription: '',\n ConferenceRateCode: '',\n ConferenceRoomCode: '',\n Price: undefined,\n OriginalPrice: undefined,\n };\n }\n\n this.trackingService.ecommerceAddToCart({\n item_id: rate.vareNr,\n item_name: seating.characteristics,\n item_category: 'Seating',\n quantity: rate.ticketSelected,\n price: rate.price,\n });\n rate.SelectedseatId = rate.vareNr;\n rate.SelectedName = rate.name;\n rate.SelectedDate = rate.arrival;\n\n this.sealectedSeatingDate = seating.date;\n this.basketService.set(this.basket);\n\n if (!this.onlySeating) {\n this.highlightedDates.push({\n date: rate.arrival,\n occupied: false,\n inBasket: true,\n } as HighlightDate);\n this.updateCalendar = true;\n }\n\n this.canContinue = true;\n }\n\n onSelectedRateClick(rate: SeatingTimesUiModel) {\n // Quantity / Price changed from one quantity to another quantity.\n this.basketService.set(this.basket);\n\n const existingSeating = this.seatingsToBasketArray.find(\n (seating) =>\n seating.seatId === rate.ID &&\n DateHelper.FromUtcDate(seating.Date.toString() as UTCDateString).getDate() ===\n DateHelper.FromUtcDate(rate.arrival.toString() as UTCDateString).getDate() &&\n seating.Name === rate.name,\n );\n if (existingSeating) {\n const existingSeatingTicketTotal = existingSeating.TicketTotal ?? 0;\n if (rate.ticketSelected != 0) {\n // Update seating quantity\n existingSeating.TicketTotal = rate.ticketSelected;\n if (existingSeating.SeatGuest.length > 0) {\n existingSeating.SeatGuest[0].Count = rate.ticketSelected;\n }\n const ticketTotalDelta = rate.ticketSelected - existingSeatingTicketTotal;\n if (ticketTotalDelta > 0) {\n this.trackingService.ecommerceAddToCart({\n item_name: `${existingSeating?.SeatRate}`,\n item_id: `${existingSeating?.Id}`,\n item_category: 'Seating',\n quantity: ticketTotalDelta,\n price: existingSeating?.SinglePrice,\n });\n } else {\n this.trackingService.ecommerceRemoveFromCart({\n item_name: `${existingSeating?.SeatRate}`,\n item_id: `${existingSeating?.Id}`,\n item_category: 'Seating',\n quantity: Math.abs(ticketTotalDelta),\n price: existingSeating?.SinglePrice,\n });\n }\n } else {\n // Remove seating quantity\n const index = this.seatingsToBasketArray.indexOf(existingSeating);\n this.seatingsToBasketArray.splice(index, 1);\n rate.SelectedseatId = undefined;\n this.trackingService.ecommerceRemoveFromCart({\n item_name: `${existingSeating?.SeatRate}`,\n item_id: `${existingSeating?.Id}`,\n item_category: 'Seating',\n quantity: existingSeatingTicketTotal,\n price: existingSeating?.SinglePrice,\n });\n }\n }\n\n if (this.basket.bookings[0].Seatings === undefined || this.basket.bookings[0].Seatings.length === 0) {\n this.onlySeating = false;\n }\n this.basketService.set(this.basket);\n }\n\n async goBack() {\n if (this.basket.bookings[0] && this.basket.bookings[0].RoomCode === ('' as RoomCodeString)) {\n await this.navigationHelper.goBack(true);\n } else {\n await this.navigationHelper.goBack();\n }\n }\n\n async buildCalendarData(itemNumber: string | undefined, isRebuild = false) {\n await this.loader.using(async () => {\n this.availableDates = [];\n let seatingSpectra = await this.hotelService.GetECommerceSeatings(\n this.applicationState.CurrentHotelCode,\n new Date(),\n DateHelper.addMonth(new Date(), 12),\n await this.localeService.getLocale(),\n true,\n );\n\n if (itemNumber) {\n seatingSpectra = seatingSpectra.filter((x) => x.Characteristics === itemNumber);\n }\n\n for (const item of seatingSpectra) {\n for (const rate of item.Rates) {\n this.availableDates.push(moment(rate.Arrival));\n\n if (\n this.seatingsAreChoosen &&\n this.basket.bookings[0].Seatings &&\n this.basket.bookings[0].Seatings.filter((x) => x.Date === rate.Arrival).length > 0\n ) {\n this.highlightedDates.push({\n date: rate.Arrival,\n occupied: false,\n inBasket: true,\n } as HighlightDate);\n }\n }\n }\n\n if (!isRebuild) {\n if (this.highlightedDates.length !== 0) {\n this.startAt = DateHelper.convertMomentToDate(moment(this.highlightedDates[0].date));\n } else {\n this.startAt = DateHelper.convertMomentToDate(this.availableDates[0]);\n }\n }\n }, 'LOA_Availability' as any);\n this.availableDates = this.availableDates.sort((a, b) => moment(a, 'DD-MM-YYYY').diff(moment(b, 'DD-MM-YYYY')));\n }\n\n private getBasket(queryParams: Partial) {\n const hotelCode = SearchComponent.ParseHotelCode(queryParams);\n const arrival = SearchComponent.ParseArrival(queryParams) || new Date();\n const stay = SearchComponent.ParseStay(queryParams) || 30;\n\n let rooms = SearchComponent.ParseRooms(queryParams);\n const single = SearchComponent.ParseSingle(queryParams);\n if (rooms === undefined) {\n rooms = [];\n }\n\n if (hotelCode && arrival && stay && rooms) {\n const params: SearchParams = {\n hotelCode,\n arrival,\n stay,\n rooms,\n single,\n ArrivalDate: 0,\n ArrivalFullYear: 0,\n ArrivalMonthName: '',\n DepartueDate: 0,\n DepartueFullYear: 0,\n DepartueMonthName: '',\n BookingFlow: 1,\n RateCode: '',\n ConferenceRoomCode: '',\n };\n return this.basketService.create(params);\n } else {\n const basket = this.basketService.get();\n if (basket) {\n return basket;\n } else {\n throw new Error('Basket must not be empty');\n }\n }\n }\n\n private async buildSeatingData(date: Date, endDate: Date) {\n const seatingWrapperArray = [] as SeatingWrapper[];\n const seatingArray = [] as SeatingUiModel[];\n\n if (!this.onlySeating) {\n const seatingSpectra = await this.hotelService.GetECommerceSeatings(\n this.applicationState.CurrentHotelCode,\n this.dateHasBeenClicked ? date : new Date(),\n this.dateHasBeenClicked ? endDate : DateHelper.addMonth(endDate, 12),\n await this.localeService.getLocale(),\n );\n\n if (seatingSpectra && seatingSpectra.length !== 0) {\n const seats = seatingSpectra.filter((x) => x.Rates !== null);\n\n for (const seatItem of seats) {\n const seatingPortal = await this.hotelService.GetECommerceSeatingPortalInfo(\n this.applicationState.CurrentHotelCode,\n date,\n endDate,\n seatItem.ItemNumber,\n this.isBookingFlow,\n this.basket.bookings[0] ? this.basket.bookings[0].RateCode : '',\n );\n\n const info = seatingPortal.find((x) => x.ID === seatItem.ItemNumber);\n if (info) {\n const seatingUiModel = {\n image: info.Image,\n characteristics: seatItem.Characteristics,\n long: info.Long,\n name: info.Name,\n sortIndex: info.SortIndex,\n seatingPlanId: info.ID,\n date: seatItem.Rates[0].Arrival,\n } as SeatingUiModel;\n\n if (this.basket && this.basket.bookings[0] && this.basket.bookings[0].Seatings) {\n seatingUiModel.selected =\n this.basket.bookings[0].Seatings.filter((x) => x.Id === info.ID).length === 0 ? false : true;\n\n if (seatingUiModel.selected) {\n this.selectedSeating = seatingUiModel;\n }\n }\n seatingArray.push(seatingUiModel);\n }\n }\n\n // Populate seatingWrapperArray with seating items of each characteristics\n // This can add more than one per characteristics if multiple are selected\n // -- in that case, in code below, it will be reduced to only contain the last selected item.\n const selectedSeatingPlanId = this.selectedSeating?.seatingPlanId ?? '';\n for (const seating of seatingArray) {\n const midDate = DateHelper.FromUtcDate(seating.date.toString() as UTCDateString);\n const month = DateHelper.getTranslatedMonth(midDate.getMonth());\n const target = seating.seatingPlanId === selectedSeatingPlanId;\n const wrapperDataExist = seatingWrapperArray.find((x) => x.data.length > 0) !== undefined;\n if (wrapperDataExist) {\n const wrapper = seatingWrapperArray[0];\n if (wrapper) {\n // Add current seating to wrapperArray if:\n // -- no other seats with same characteristics are in the array\n // -- current seating matches the selected seatingPlanId\n const matches = wrapper.data.find((x) => x.characteristics == seating.characteristics);\n const addToWrapper = matches === undefined || target;\n if (addToWrapper) {\n wrapper.data.push(seating);\n this.sortList(wrapper.data);\n }\n }\n } else {\n // Create wrapperArray, and add current seating.\n const wrapper = {} as SeatingWrapper;\n if (month) {\n wrapper.month = month;\n wrapper.data = [] as SeatingUiModel[];\n wrapper.data.push(seating);\n seatingWrapperArray.push(wrapper);\n }\n }\n }\n\n // Ensure only the last item with selected=true is included in the result\n const wrapperData = seatingWrapperArray[0].data;\n const selectedItems = wrapperData.filter((item) => item.selected === true);\n if (selectedItems.length > 1) {\n let count = 0;\n for (let i = wrapperData.length - 1; i >= 0; i--) {\n if (wrapperData[i].selected && ++count > 1) {\n wrapperData.splice(i, 1);\n }\n }\n }\n\n // Ensure only one of each characteristics is included in the result, favoring items with selected=true\n const characteristicsMatches: string[] = [];\n seatingWrapperArray[0].data.forEach((item) => {\n const count = seatingWrapperArray[0].data.filter((x) => x.characteristics === item.characteristics).length;\n if (count > 1) {\n characteristicsMatches.push(item.characteristics);\n }\n });\n\n if (characteristicsMatches.length > 0) {\n seatingWrapperArray[0].data = seatingWrapperArray[0].data.filter((item) => {\n // Remove all hits where selected=false, since multiple hits will only happen if multiple are selected (and multiple selected=true were filtered out above)\n return !(characteristicsMatches.includes(item.characteristics) && !item.selected);\n });\n }\n\n // Set minDate to the day before first item in seatingArray, if not already set and seatingArray has items.\n if (this.minDate === undefined && seatingArray.length > 0) {\n this.minDate = moment(seatingArray[0].date).add(-1, 'day');\n if (this.seatingsAreChoosen) {\n this.chosenDate$.next(moment(this.sealectedSeatingDate));\n }\n }\n // set maxDate to the last date in availableDates, if not already set.\n if (this.maxDate === undefined) {\n this.maxDate = moment(this.availableDates[this.availableDates.length - 1]);\n }\n }\n } else {\n const { hotelCode, arrival, stay } = this.basket.params;\n\n let seatings = [] as SeatingData[];\n\n const spectraSeatings = await this.hotelService.GetECommerceSeatings(\n hotelCode,\n arrival,\n DateHelper.addDays(arrival, stay),\n await this.localeService.getLocale(),\n );\n\n for (const item of spectraSeatings) {\n if (seatings.filter((x) => x.Characteristics === item.Characteristics).length === 0) {\n seatings.push(item);\n }\n }\n\n if (seatings && seatings.length !== 0) {\n seatings = seatings.filter((x) => x.Rates);\n\n for (const item of seatings) {\n const seatingPortal = await this.hotelService.GetECommerceSeatingPortalInfo(\n this.applicationState.CurrentHotelCode,\n arrival,\n DateHelper.addDays(arrival, stay),\n item.ItemNumber,\n this.isBookingFlow,\n this.basket.bookings[0] ? this.basket.bookings[0].RateCode : '',\n );\n\n const info = seatingPortal.find((x) => x.ID === item.ItemNumber);\n\n if (info) {\n const seatingUiModel = {} as SeatingUiModel;\n seatingUiModel.image = info.Image;\n seatingUiModel.characteristics = item.Characteristics;\n seatingUiModel.long = info.Long;\n seatingUiModel.sortIndex = info.SortIndex;\n seatingUiModel.seatingPlanId = info.ID;\n seatingUiModel.date = item.Rates[0].Arrival;\n seatingUiModel.selected = false;\n seatingUiModel.name = info.Name;\n\n if (this.basket && this.basket.bookings && this.basket.bookings[0].Seatings) {\n seatingUiModel.selected =\n this.basket.bookings[0].Seatings.filter((x) => x.Id === info.ID).length === 0 ? false : true;\n if (seatingUiModel.selected) {\n this.selectedSeating = seatingUiModel;\n }\n }\n seatingArray.push(seatingUiModel);\n }\n }\n\n for (const seating of seatingArray) {\n const midDate = DateHelper.FromUtcDate(seating.date.toString() as UTCDateString);\n const month = DateHelper.getTranslatedMonth(midDate.getMonth());\n const exist = seatingWrapperArray.find((x) => x.month === month) !== undefined;\n if (exist) {\n const wrapper = seatingWrapperArray.find((x) => x.month === month);\n\n if (wrapper) {\n const skip = wrapper.data.find((x) => x.seatingPlanId === seating.seatingPlanId) === undefined;\n\n if (skip) {\n wrapper.data.push(seating);\n }\n }\n } else {\n const wrapper = {} as SeatingWrapper;\n if (month) {\n wrapper.month = month;\n wrapper.data = [] as SeatingUiModel[];\n wrapper.data.push(seating);\n seatingWrapperArray.push(wrapper);\n }\n }\n }\n } else {\n await this.navigationHelper.navigateToPage('/add-on/1');\n }\n }\n\n for (const item of seatingWrapperArray) {\n item.data = this.sortList(item.data);\n }\n\n const { seatingCode, showList } = this.GetSeatingCodeAndShowListFromQS();\n\n // Select seating, if seatingPlanId matches seatingCode in QueryString\n if (seatingCode !== '') {\n const reArrangedSeatingWrapperArray = seatingWrapperArray;\n\n // Filter or rearrange seatings, depending on showList being true in QueryString or not\n if (showList) {\n // Rearrange the seatings, so the selected seating is first\n\n const rearrangedArray = [\n // Add the selected seating as first array entry\n ...reArrangedSeatingWrapperArray[0].data.filter((item) => item.seatingPlanId === seatingCode),\n // Add the rest of the seatings\n ...reArrangedSeatingWrapperArray[0].data.filter((item) => item.seatingPlanId !== seatingCode),\n ];\n\n reArrangedSeatingWrapperArray[0].data = rearrangedArray;\n } else {\n // Filter the seatings, so only the selected seating is included\n\n const filteredArray = [\n // Add the selected seating as only array entry\n ...reArrangedSeatingWrapperArray[0].data.filter((item) => item.seatingPlanId === seatingCode),\n ];\n\n if (filteredArray.length > 0) {\n reArrangedSeatingWrapperArray[0].data = filteredArray;\n }\n }\n\n this.SelectBySeatingCode(reArrangedSeatingWrapperArray, seatingCode);\n return reArrangedSeatingWrapperArray;\n }\n return seatingWrapperArray;\n }\n\n private GetSeatingCodeAndShowListFromQS(): {\n seatingCode: string;\n showList: boolean;\n } {\n // Get all QueryString parameter data\n const urlParams = new URLSearchParams(window.location.search);\n\n // Find Querystring parameter names (because they're case sensitive)\n const seatingCodeParameterName = Array.from(urlParams.keys()).find((key) => key.toLowerCase() === 'seatingcode');\n const showListParameterName = Array.from(urlParams.keys()).find((key) => key.toLowerCase() === 'showlist');\n\n // Determine if the parameters present set or not\n const seatingCodeDefinedResult = seatingCodeParameterName !== undefined && seatingCodeParameterName !== null;\n const showListDefinedResult = showListParameterName !== undefined && showListParameterName !== null;\n\n // Get the parameter values (or use defaults if not set)\n const seatingCodeResult = seatingCodeDefinedResult ? urlParams.get(seatingCodeParameterName!) || '' : '';\n const showListResult = showListDefinedResult\n ? urlParams.get(showListParameterName!)?.toLowerCase() === 'true'\n : false;\n\n return {\n seatingCode: seatingCodeResult,\n showList: showListResult,\n };\n }\n\n private SelectBySeatingCode(seatingsArray: SeatingWrapper[], seatingCode: string) {\n let matchingSeatingData = null;\n for (const seating of seatingsArray) {\n if (seating.data?.length) {\n matchingSeatingData = seating.data.find((item) => item.seatingPlanId === seatingCode);\n // If a match is found, exit the for-loop.\n if (matchingSeatingData) {\n break;\n }\n }\n }\n\n // If a match is found, \"click\" it.\n if (matchingSeatingData) {\n this.onSeatingClick(null, matchingSeatingData);\n }\n }\n\n private sortList(array: SeatingUiModel[]) {\n const sortedArray = [] as SeatingUiModel[];\n\n for (const item of array) {\n if (sortedArray.length === 0) {\n sortedArray.push(item);\n } else {\n if (sortedArray.filter((x) => x.sortIndex > item.sortIndex).length === 0) {\n sortedArray.push(item);\n } else {\n const object = sortedArray.filter((x) => x.sortIndex > item.sortIndex)[0];\n const index = sortedArray.indexOf(object);\n\n sortedArray.splice(index, 0, item);\n }\n }\n }\n return sortedArray;\n }\n\n private async buildAvailibleDates(bookings: Booking[]) {\n if (this.selectedSeating) {\n const selectedCharacteristics = this.selectedSeating.characteristics;\n const firstDate = DateHelper.FromUtcDate(this.selectedSeating.date.toString() as UTCDateString);\n let start = DateHelper.getFirstDateOfMonth(firstDate);\n let end = DateHelper.getLastDateOfMonth(firstDate);\n\n let res: SeatingData[] | undefined;\n if (!this.onlySeating) {\n if (this.chosenDate$.value) {\n const calendarDate = DateHelper.convertMomentToDate(this.chosenDate$.value);\n start = calendarDate;\n end = calendarDate;\n }\n\n res = await this.hotelService.GetECommerceSeatings(\n this.applicationState.CurrentHotelCode,\n start,\n end,\n await this.localeService.getLocale(),\n );\n } else {\n const { hotelCode, arrival, stay } = this.basket.params;\n end = DateHelper.addDays(arrival, stay);\n start = arrival;\n res = await this.hotelService.GetECommerceSeatings(hotelCode, start, end, await this.localeService.getLocale());\n }\n\n if (res) {\n res = res.filter((x) => x.Rates !== null);\n }\n\n const seatings: SeatingTimesUiModel[] = [];\n try {\n if (res) {\n for (const specSeat of res.filter((x) => x.Characteristics === selectedCharacteristics)) {\n const seatingPortal = await this.hotelService.GetECommerceSeatingPortalInfo(\n this.applicationState.CurrentHotelCode,\n start,\n end,\n specSeat.ItemNumber,\n this.isBookingFlow,\n this.basket.bookings[0] ? this.basket.bookings[0].RateCode : '',\n );\n const seatInfo = seatingPortal.find((x) => x.ID === specSeat.ItemNumber);\n\n if (seatInfo) {\n for (const seat of seatInfo.SeatItems) {\n for (const item of specSeat.Rates) {\n const seatingModel = {} as SeatingTimesUiModel;\n const midDate = DateHelper.FromUtcDate(item.Arrival.toString() as UTCDateString);\n const month = DateHelper.getTranslatedMonth(midDate.getMonth());\n const time = DateHelper.getTimeFromUtcDate(item.Arrival.toString() as UTCDateTimeString);\n\n seatingModel.day = midDate.getDate().toString();\n\n if (seatings.filter((x) => x.arrival === item.Arrival).length === 0) {\n seatingModel.month = month;\n seatingModel.year = midDate.getFullYear().toString();\n } else {\n seatingModel.multipleDays = true;\n }\n\n seatingModel.arrival = item.Arrival;\n seatingModel.price = seat.Price;\n seatingModel.name = specSeat.Description;\n seatingModel.vareNr = seat.VareNr;\n seatingModel.tickets = this.buildAvailibleTickets(item.MaxPers);\n seatingModel.ticketSelected = seatingModel.tickets[0];\n seatingModel.AQC = specSeat.AQC;\n\n if (seatingModel.tickets.length === 0) {\n continue;\n }\n\n const seating = seatings.find(\n (x) =>\n x.day === midDate.getDate().toString() &&\n x.month === month &&\n x.year === midDate.getFullYear().toString(),\n );\n\n const currentSeat = seatings.find(\n (x) => x.vareNr === seat.VareNr && x.day === midDate.getDate().toString(),\n );\n\n if (seating) {\n if (currentSeat) {\n const clockModel = {} as ClockUiModel;\n clockModel.time = time;\n clockModel.date = item.Arrival;\n clockModel.maxAvailible = item.MaxPers;\n\n const index = currentSeat.clock.filter(\n (x) => x.time && x.date.toString() === item.Arrival.toString(),\n );\n\n if (index.length === 0) {\n // Only push if no other has been pushed earlier (index.length is 0)\n currentSeat.clock.push(clockModel);\n }\n } else {\n if (seatingModel.clock === undefined) {\n seatingModel.clock = [] as ClockUiModel[];\n }\n\n const clockModel = {} as ClockUiModel;\n\n clockModel.time = time;\n clockModel.date = item.Arrival;\n clockModel.maxAvailible = item.MaxPers;\n\n seatingModel.clock.push(clockModel);\n seatings.push(seatingModel);\n }\n } else {\n seatingModel.clock = [] as ClockUiModel[];\n const clockModel = {} as ClockUiModel;\n\n clockModel.time = time;\n clockModel.date = item.Arrival;\n clockModel.maxAvailible = item.MaxPers;\n\n seatingModel.clock.push(clockModel);\n seatings.push(seatingModel);\n }\n }\n }\n }\n }\n if (\n this.seatingsAreChoosen ||\n (this.basket &&\n this.basket.bookings[0] &&\n this.basket.bookings[0].Seatings &&\n this.basket.bookings[0].Seatings.length !== 0)\n ) {\n for (const item of bookings) {\n if (item.Seatings) {\n this.buildSelectedSeatsFromBasket(item.Seatings, seatings);\n }\n }\n }\n const sortedDates = seatings.sort((a, b) => {\n const dateA = new Date(a.arrival);\n const dateB = new Date(b.arrival);\n return dateA.getDate() - dateB.getDate();\n });\n return sortedDates;\n }\n return [];\n } catch (err: any) {\n this.log.error(`RoomRoute failed to load seatings. ${err.message}`);\n return undefined;\n }\n }\n return [];\n }\n}\n\nexport interface SeatingWrapper {\n month: string;\n data: SeatingUiModel[];\n}\n\nexport interface SeatingUiModel {\n image: string;\n long: string;\n name: string;\n characteristics: string;\n date: Date;\n seatingPlanId: string;\n sortIndex: number;\n tableTickets: TableTickets[];\n tableDetails: SeatingTableDetails;\n selected: boolean;\n seatingTimesUiModel: SeatingTimesUiModel[] | SeatingRate[] | undefined;\n AQC: AQC;\n}\n\nexport interface TableTickets {\n arrival: Date;\n maxPers: number;\n}\n\nexport interface SeatingTableDetails {\n vareNr: string;\n price: number;\n rateCode: string;\n}\n\nexport interface SeatingTimesUiModel {\n arrival: Date;\n month: string;\n day: string;\n year: string;\n clock: ClockUiModel[];\n price: number;\n name: string;\n tickets: number[];\n ticketSelected: number;\n totalPrice: number;\n vareNr: string;\n ID: number;\n SelectedseatId: string | undefined;\n SelectedName: string | undefined;\n SelectedDate: Date | undefined;\n multipleDays: boolean;\n AQC: AQC | undefined;\n}\n\nexport interface ClockUiModel {\n date: Date;\n time: string | null;\n maxAvailible: number;\n selectedTime: string | undefined;\n}\n","
\n
\n \n {{ 'COM_Back' | t | async }}\n \n {{ 'COM_Continue' | t | async }}\n\n \n {{ state.EventLabel | t | async }}\n

\n \n {{ state.EventLabel | t | async }}\n

\n

\n {{ state.EventLabel | t | async }}\n

\n

\n {{ 'SEA_DescriptionStart' | t | async }} {{ state.EventLabel | t | async }}\n {{ 'SEA_DescriptionEnd' | t | async }}\n

\n\n \n
\n\n
\n
\n
\n
\n \n \n {{ 'SEA_ResetCalendar' | t | async }}\n {{ state.EventLabel | t | async }}\n
\n
\n
\n
\n \n \n \n
\n
\n
\n \n \n \n \n

\n {{ 'RPA_Image' | t | async }}\n

\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n

{{ room.item.name }}

\n
\n
\n
\n \n \n
\n
\n
\n

\n
\n
\n \n
\n
\n

\n {{ 'SEA_Date' | t | async }}\n

\n

\n {{ date.day }}. {{ date.month | t | async }}\n {{ date.year }}\n

\n

\n {{ date.name }}\n

\n

\n {{ date.name }}\n

\n
\n
\n
\n

\n {{ 'SEA_Time' | t | async }}\n

\n
\n \n \n \n \n
\n
\n \n

\n {{ 'SEA_Quantity' | t | async }} / {{ 'COM_Price' | t | async }}\n

\n \n \n \n \n \n
\n
\n
\n \n
\n \n \n \n \n \n \n
\n
\n \n
\n
\n\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { ApplicationStateService, BasketService, HotelService } from '../../../core';\nimport { DateHelper } from '../../../helpers';\nimport { NavigationHelper } from '../../../helpers/navigation-helper';\n\n@Component({\n selector: 'app-guests',\n templateUrl: './guests.component.html',\n})\nexport class GuestsComponent implements OnInit, OnDestroy {\n guestCounter = 2;\n\n constructor(\n private applicationState: ApplicationStateService,\n private basketService: BasketService,\n private navigationHelper: NavigationHelper,\n private hotelService: HotelService,\n ) {}\n\n async ngOnInit() {\n await this.canUseModule();\n\n document.body.classList.remove('addBackGround');\n document.body.classList.remove('addBackGroundWithAnimation');\n document.body.style.backgroundImage = '';\n await this.prepareNavigation();\n }\n\n ngOnDestroy(): void {\n this.navigationHelper.resetNextPage();\n }\n\n async prepareNavigation() {\n await this.navigationHelper.continueMobileNavigationbar(false, true, '/guests', '/products', {\n queryParams: {\n HotelCode: this.applicationState.CurrentHotelCode,\n ArrivalDate: DateHelper.toServerDateFormatString(new Date()),\n LengthOfStay: 30,\n guest: this.guestCounter,\n },\n });\n }\n\n async canUseModule() {\n await this.hotelService.BuildApplicationState();\n\n if (!this.applicationState.UseTableReservation) {\n await this.navigationHelper.navigateToPage('/landing-page');\n }\n }\n\n async clearBasket() {\n this.basketService.basketBadgeNumberSet = '0';\n await this.goBack();\n }\n\n async addGuest() {\n this.guestCounter = this.guestCounter + 1;\n await this.prepareNavigation();\n }\n\n async next() {\n await this.navigationHelper.continue('/guests', '/products', {\n queryParams: {\n HotelCode: this.applicationState.CurrentHotelCode,\n ArrivalDate: DateHelper.toServerDateFormatString(new Date()),\n LengthOfStay: 30,\n guest: this.guestCounter,\n },\n });\n }\n\n async goBack() {\n await this.navigationHelper.goBack();\n }\n\n removeGuest() {\n if (this.guestCounter > 1) {\n this.guestCounter = this.guestCounter - 1;\n }\n }\n}\n","
\n
\n {{ 'COM_Back' | t | async }}\n {{ 'COM_Continue' | t | async }}\n\n

\n {{ 'COM_TableReservation' | t | async }}\n

\n

\n {{ 'COM_TableReservation' | t | async }}\n

\n\n

\n {{ 'COM_TableNumberOfPersons' | t | async }}\n

\n\n \n\n
\n
\n
\n \n
\n\n
\n \n
\n\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ApplicationStateService } from '../../../core';\nimport { Day } from './products.component';\n\n@Component({\n selector: 'app-calendar-tile',\n templateUrl: './calendar-tile.component.html',\n})\nexport class CalendarTileComponent {\n @Input() componentRequestor: string | undefined;\n @Input() width: number | undefined;\n @Input() fullHeight: number | undefined;\n @Input() date: Day | undefined;\n @Input() month: string | undefined;\n @Output() clickedDay = new EventEmitter();\n\n highlight = false;\n stateColor = this.applicationState.ApplicationColor;\n\n constructor(private applicationState: ApplicationStateService) {}\n\n dayClicked() {\n this.clickedDay.emit(this.date);\n this.highlight = true;\n }\n}\n","\n {{ date.date.getDate() }}\n\n\n\n {{ date.date.getDate() }}\n\n\n
  • \n {{ date.date.getDate() }}\n
  • \n","import { Component, OnDestroy, OnInit, TemplateRef, ViewChild } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { LogService } from '@com/logging';\nimport { EmptyError, Subscription } from 'rxjs';\nimport { AppQueryParams } from 'src/app/app.component';\nimport {\n ApplicationStateService,\n BookingSeating,\n BookingTable,\n RateCodeString,\n RoomCodeString,\n SeatingData,\n} from 'src/app/core';\nimport { BasketQueryParams, BasketService, HotelService, Loader, LocaleService, SearchParams } from 'src/app/core';\nimport { DateHelper, Guid, UTCDateString, UTCDateTimeString } from 'src/app/helpers';\nimport { SeatProfileType } from '../../../core/modules/payment';\nimport { NavigationHelper } from '../../../helpers/navigation-helper';\nimport { Messenger } from '../../../modules/messenger';\nimport { DesignConfiguration } from '../../../shared/design/design-configuration';\nimport { SearchComponent } from '../../search/search.component';\nimport { SeatingTableDetails, SeatingUiModel, SeatingWrapper, TableTickets } from '../../seating/seating.component';\n\n@Component({\n selector: 'app-products',\n templateUrl: './products.component.html',\n})\nexport class ProductsComponent implements OnInit, OnDestroy {\n guestCount = 2 as number;\n guestCountArray: number[] = [];\n\n calendarDates: CalendarModel | undefined;\n currentDate = new Date();\n calendarClick = false;\n currentDay: Day | undefined;\n status = false;\n data: SeatingWrapper[] | undefined;\n paramsSubscription: Subscription | undefined;\n tableToBasketArray: BookingTable[] = [];\n bookingFlow = false;\n\n basket = this.getBasket(this.route.snapshot.queryParams as AppQueryParams);\n\n ticketSelectedFromBasket: number | undefined;\n seatingSelected: Guid | undefined;\n sealectedSeatingDate: Date | undefined;\n seatingsToBasketArray: BookingSeating[] = [];\n state: ApplicationStateService | undefined;\n\n @ViewChild('messageHotelTermsTempalte', { static: false })\n messageHotelTermsTempalte: TemplateRef | undefined;\n\n constructor(\n private log: LogService,\n private route: ActivatedRoute,\n private loader: Loader,\n private basketService: BasketService,\n private hotelService: HotelService,\n private localeService: LocaleService,\n private applicationState: ApplicationStateService,\n private messenger: Messenger,\n private navigationHelper: NavigationHelper,\n private designConfig: DesignConfiguration,\n ) {}\n\n async ngOnInit() {\n this.catchUrlParams();\n\n if (this.basket.bookings.length !== 0 && this.basket.bookings[0].RoomName !== '') {\n this.bookingFlow = true;\n this.currentDate = new Date(this.basket.params.arrival);\n }\n\n await this.buildCalendarModel();\n this.buildGuestCountArray();\n\n this.state = this.applicationState;\n\n if (this.basket.bookings.length === 0) {\n this.basket.params.rooms = [];\n }\n\n // If returning to the module after selecting the table reservations, we build all the data from basket, by 'clicking' the clikedDate() method from the code\n if (\n this.basket.bookings.length !== 0 &&\n this.basket.bookings[0].TableSeatings &&\n this.basket.bookings[0].TableSeatings[0] !== undefined\n ) {\n await this.clickedDate({\n date: new Date(this.basket.bookings[0].TableSeatings[0].Date),\n } as Day);\n }\n\n document.body.classList.remove('addBackGround');\n document.body.style.backgroundImage = '';\n await this.prepareNavigation();\n }\n\n ngOnDestroy(): void {\n this.navigationHelper.resetNextPage();\n }\n\n async prepareNavigation() {\n if (this.bookingFlow) {\n if (this.applicationState.UseSeatings && this.applicationState.InclueSeatingBookingFlow) {\n await this.navigationHelper.continueMobileNavigationbar(false, true, '/products', '/seating/1');\n } else {\n await this.navigationHelper.continueMobileNavigationbar(false, true, '/products', '/add-on/1');\n }\n } else {\n await this.navigationHelper.continueMobileNavigationbar(false, true, '/products', '/customer', {\n queryParams: { guest: this.guestCount },\n });\n }\n }\n\n buildGuestCountArray() {\n let selectedGuests = 0;\n\n if (this.basket.bookings.length !== 0 && this.basket.bookings[0].TableSeatings) {\n for (const item of this.basket.bookings[0].TableSeatings) {\n for (const seat of item.SeatGuest) {\n selectedGuests = selectedGuests + +seat.Count;\n }\n }\n }\n\n this.guestCount = +this.guestCount;\n\n if (!this.bookingFlow) {\n if (selectedGuests !== this.guestCount) {\n this.guestCountArray = [] as number[];\n let counter = 1;\n\n while (counter <= this.guestCount) {\n this.guestCountArray.push(counter);\n counter = counter + 1;\n }\n }\n } else {\n let counter = 1;\n\n while (counter <= this.guestCount) {\n this.guestCountArray.push(counter);\n counter = counter + 1;\n }\n }\n }\n\n catchUrlParams() {\n const guest = this.route.snapshot.queryParams['guest'];\n if (guest !== undefined) {\n this.guestCount = guest;\n }\n }\n\n async nextMonth() {\n this.currentDate = DateHelper.addMonth(this.currentDate, 2);\n await this.buildCalendarModel();\n }\n\n async prevMonth() {\n this.currentDate = DateHelper.addMonth(this.currentDate, 0);\n await this.buildCalendarModel();\n }\n\n async checkSeatingAvailability(start: Date, end: Date) {\n return await this.loader.using(async () => {\n return await this.hotelService.getTableAvailability(\n this.applicationState.CurrentHotelCode,\n start,\n end,\n this.guestCount,\n this.bookingFlow,\n this.basket.bookings[0] ? this.basket.bookings[0].RateCode : '',\n );\n }, 'LOA_Configuration' as any);\n }\n\n async buildCalendarModel() {\n const lastDay = DateHelper.getLastDateOfMonth(this.currentDate);\n const firstDay = DateHelper.getFirstDateOfMonth(this.currentDate);\n\n const arrival = this.basket.params.arrival;\n let departure;\n\n if (this.basket.params.stay < 25) {\n departure = DateHelper.addDays(arrival, this.basket.params.stay);\n }\n\n const res = await this.checkSeatingAvailability(arrival, departure ? departure : DateHelper.addDays(lastDay, 1));\n\n if (departure && res.length === 0) {\n if (this.applicationState.UseSeatings && this.applicationState.InclueSeatingBookingFlow) {\n await this.navigationHelper.navigateToPage('/seating/1');\n } else {\n await this.navigationHelper.navigateToPage('/add-on/1');\n }\n }\n\n const dateCollection = [] as Date[];\n\n for (const item of res) {\n const date = DateHelper.FromUtcDate(item as unknown as UTCDateTimeString);\n if (departure && DateHelper.FromUtcDate(item.toString() as UTCDateTimeString).getTime() >= departure.getTime()) {\n continue;\n }\n\n dateCollection.push(date);\n }\n\n if (departure && dateCollection.length === 0) {\n if (this.applicationState.UseSeatings && this.applicationState.InclueSeatingBookingFlow) {\n await this.navigationHelper.navigateToPage('/seating/1');\n } else {\n await this.navigationHelper.navigateToPage('/add-on/1');\n }\n }\n\n let dayCounter = 0;\n const model = {} as CalendarModel;\n model.days = [] as Day[];\n model.currentMonth = DateHelper.getTranslatedMonth(firstDay.getMonth());\n model.currentYear = firstDay.getFullYear();\n\n let dummyDaysAdded = false;\n\n while (dayCounter < lastDay.getDate()) {\n const day = {} as Day;\n\n day.date = DateHelper.addDays(firstDay, dayCounter);\n const anySeatings =\n dateCollection.filter((x) => x.getDate() === day.date.getDate() && x.getMonth() === day.date.getMonth())\n .length !== 0\n ? true\n : false;\n day.status = this.calculateStatus(day.date, new Date(), anySeatings, departure);\n day.active = day.status === dayStatus.open ? true : false;\n\n // Days before current monthdays (grayed out)\n if (!dummyDaysAdded) {\n let weekDay = day.date.getDay();\n let daysToSubract = this.calculateDaysToSubstract(weekDay);\n const days = this.daysToReach(weekDay);\n\n while (weekDay < days) {\n const dummyday = {} as Day;\n\n dummyday.date = DateHelper.addDays(firstDay, daysToSubract);\n dummyday.active = false;\n dummyday.status = dayStatus.invalid;\n\n model.days.push(dummyday);\n\n weekDay = weekDay + 1;\n daysToSubract = daysToSubract + 1;\n }\n dummyDaysAdded = true;\n }\n\n model.days.push(day);\n dayCounter = dayCounter + 1;\n }\n\n this.calendarDates = model;\n }\n\n buildAvailableHours(tickets: SeatingUiModel) {\n const hours = [] as TableArrival[];\n let res = tickets.tableTickets.filter((x) => x.maxPers >= this.guestCount);\n\n res = res.sort((a: TableTickets, b: TableTickets) => new Date(a.arrival).getTime() - new Date(b.arrival).getTime());\n\n res.forEach((item) => {\n if (\n DateHelper.FromUtcDate(item.arrival as unknown as UTCDateTimeString).getDate() ===\n DateHelper.FromUtcDate(tickets.date as unknown as UTCDateTimeString).getDate()\n ) {\n const model = {\n realDate: item.arrival,\n clock: DateHelper.getTimeFromUtcDate(item.arrival.toString() as UTCDateTimeString),\n } as TableArrival;\n hours.push(model);\n }\n });\n\n return hours;\n }\n\n onCardClick(item: SeatingUiModel) {\n if (item.selected) {\n item.selected = false;\n this.removeTableReservationFromBasket(item);\n return;\n }\n\n if (this.messageHotelTermsTempalte) {\n this.applicationState.stopScrolling(true);\n const hours = this.buildAvailableHours(item);\n const message = this.messenger.show(\n this.messageHotelTermsTempalte,\n {\n time: hours,\n guestArrival: hours[0].clock,\n guestCount: this.guestCountArray.length,\n accept: async (x: SelectedTableModel) => {\n const selectedHour = hours.find((y) => y.clock === message.data.guestArrival);\n\n if (selectedHour) {\n item.selected = true;\n this.applicationState.stopScrolling(false);\n this.addTableReservationToBasket(item, selectedHour, x);\n this.messenger.close(message);\n\n if (!this.bookingFlow) {\n this.guestCountArray.splice(this.guestCountArray.length - message.data.guestCount);\n }\n\n if (this.guestCountArray.length === 0) {\n if (!this.bookingFlow) {\n await this.navigationHelper.continue('/products', '/customer', {\n queryParams: { guest: this.guestCount },\n });\n }\n }\n } else {\n this.log.error(\n 'The selected time on the current table reservation could not be choosen',\n message.data.guestArrival,\n );\n }\n },\n close: () => {\n this.applicationState.stopScrolling(false);\n this.messenger.close(message);\n },\n },\n () => {\n this.applicationState.stopScrolling(false);\n message.data.close();\n },\n );\n }\n }\n\n removeTableReservationFromBasket(item: SeatingUiModel) {\n if (this.basket.bookings.length !== 0 && this.basket.bookings[0].TableSeatings !== undefined) {\n const toRemove = this.basket.bookings[0].TableSeatings.findIndex(\n (x) => x.SeatGuest[0].SeatId === item.seatingPlanId,\n );\n const info = this.basket.bookings[0].TableSeatings.find((x) => x.SeatGuest[0].SeatId === item.seatingPlanId);\n\n if (info !== undefined) {\n if (!this.bookingFlow) {\n const count = info.SeatGuest[0].Count;\n let lastNumber = this.guestCountArray[this.guestCountArray.length - 1];\n\n let toAdd = 0;\n\n if (lastNumber) {\n toAdd = +count + +lastNumber;\n } else {\n toAdd = count;\n lastNumber = 0;\n }\n\n while (this.guestCountArray.length < toAdd) {\n lastNumber = lastNumber + 1;\n this.guestCountArray.push(lastNumber);\n }\n }\n\n this.basket.bookings[0].TableSeatings.splice(toRemove, 1);\n\n this.basketService.set(this.basket);\n }\n }\n }\n\n daysToReach(weekDay: number) {\n switch (weekDay) {\n case 0: {\n return 6;\n }\n case 1: {\n return 1;\n }\n case 2: {\n return 3;\n }\n case 3: {\n return 5;\n }\n case 4: {\n return 7;\n }\n case 5: {\n return 9;\n }\n case 6: {\n return 11;\n }\n default: {\n return 0;\n }\n }\n }\n\n calculateDaysToSubstract(weekDay: number) {\n switch (weekDay) {\n case 0: {\n return -6;\n }\n case 1: {\n return -5;\n }\n case 2: {\n return -1;\n }\n case 3: {\n return -3;\n }\n case 4: {\n return -3;\n }\n case 5: {\n return -4;\n }\n case 6: {\n return -7;\n }\n default: {\n return 0;\n }\n }\n }\n\n calculateStatus(date: Date, currentMonth: Date, anyseatings: boolean, departure?: Date) {\n if (departure && departure <= date) {\n return dayStatus.invalid;\n }\n if (departure && this.basket.params.arrival > date) {\n return dayStatus.invalid;\n }\n if (currentMonth.getMonth() > date.getMonth() && currentMonth.getFullYear() === date.getFullYear()) {\n return dayStatus.runOut;\n } else if (currentMonth.getMonth() === date.getMonth() && date.getDate() < new Date().getDate()) {\n return dayStatus.invalid;\n } else if (!anyseatings) {\n return dayStatus.closed;\n }\n return dayStatus.open;\n }\n\n async clickedDate(day: Day) {\n this.resetAllSelectedDates();\n this.currentDay = day;\n this.status = true;\n day.selected = true;\n await this.buildData(day.date, false);\n\n setTimeout(() => {\n const cards = document.getElementById('cards');\n\n if (cards !== null) {\n cards.classList.remove('hide');\n cards.classList.add('item1');\n cards.classList.add('fadeBody');\n }\n if (this.designConfig.addProductScrolling()) {\n window.scrollTo({ left: 0, top: 220, behavior: 'smooth' });\n }\n }, 700);\n }\n\n resetAllSelectedDates() {\n if (this.calendarDates) {\n this.calendarDates.days.forEach((x) => {\n x.selected = false;\n });\n }\n }\n\n async buildData(date: Date = new Date(), calculateMonth = true) {\n this.data = await this.buildSeatingData(date, calculateMonth);\n }\n\n addTableReservationToBasket(seating: SeatingUiModel, arrival: TableArrival, model: SelectedTableModel) {\n const seatGuestArray: SeatProfileType[] = [] as SeatProfileType[];\n const modiDate = DateHelper.FromUtcDate(arrival.realDate.toString() as UTCDateString);\n const seatGuestProfile = {\n Count: model.guestCount,\n SeatId: seating.seatingPlanId.toString(),\n Name: seating.characteristics,\n Price: seating.tableDetails.price,\n VareNr: seating.tableDetails.vareNr,\n Date: DateHelper.toServerDateFormatString(modiDate) as UTCDateString,\n Time: arrival.clock,\n } as SeatProfileType;\n seatGuestArray.push(seatGuestProfile);\n\n const tableToBasket = {\n Id: seating.seatingPlanId,\n HotelCode: this.applicationState.CurrentHotelCode,\n Name: seating.name,\n Date: arrival.realDate,\n translatedMonth: DateHelper.getTranslatedMonth(\n DateHelper.FromUtcDate(arrival.realDate.toString() as UTCDateTimeString).getMonth(),\n ),\n Time: model.guestArrival,\n SeatCode: 'DELT',\n SeatRate: seating.characteristics,\n Total: model.guestCount * seating.tableDetails.price,\n SeatGuest: seatGuestArray,\n Day: DateHelper.FromUtcDate(arrival.realDate.toString() as UTCDateTimeString).getDate(),\n Year: DateHelper.FromUtcDate(arrival.realDate.toString() as UTCDateTimeString).getFullYear(),\n SeatingPlanName: seating.name,\n } as BookingTable;\n\n if (this.bookingFlow) {\n // If bookingflow, we want to preserve basket content\n this.basket.bookings[0].TableSeatings = this.tableToBasketArray;\n }\n\n if (this.bookingFlow) {\n // If bookingflow, we want to preserve basket content\n if (this.basket.bookings.length !== 0 && this.basket.bookings[0].TableSeatings) {\n this.tableToBasketArray = this.basket.bookings[0].TableSeatings;\n this.tableToBasketArray.push(tableToBasket);\n }\n this.basket.bookings[0].TableSeatings = this.tableToBasketArray;\n } else {\n // If only table reservation, we want the basket to only contain the table reservation\n this.tableToBasketArray.push(tableToBasket);\n this.basket.bookings[0] = {\n HasPromotionForCustomer: false,\n RateCode: '' as RateCodeString,\n RateName: '',\n RoomCode: '' as RoomCodeString,\n RoomName: '',\n RateDescription: '',\n TableSeatings: this.tableToBasketArray,\n ConferenceRateCode: '',\n ConferenceRoomCode: '',\n Price: undefined,\n OriginalPrice: undefined,\n };\n }\n\n this.basketService.set(this.basket);\n }\n\n async goBack() {\n await this.navigationHelper.goBack();\n }\n\n async onMoveToNextClick() {\n if (this.bookingFlow) {\n if (this.applicationState.UseSeatings && this.applicationState.InclueSeatingBookingFlow) {\n await this.navigationHelper.continue('/products', '/seating/1', {\n queryParams: { guest: this.guestCount },\n });\n } else {\n await this.navigationHelper.continue('/products', '/add-on/1', {\n queryParams: { guest: this.guestCount },\n });\n }\n } else {\n await this.navigationHelper.continue('/products', '/customer', {\n queryParams: { guest: this.guestCount },\n });\n }\n }\n\n isTableSelected(seatingData: SeatingData, date: Date) {\n if (this.basket.bookings.length !== 0 && this.basket.bookings[0].TableSeatings) {\n if (\n this.basket.bookings[0].TableSeatings.filter(\n (x) =>\n x.Id === seatingData.ItemNumber &&\n new Date(x.Date).getDate() === date.getDate() &&\n new Date(x.Date).getMonth() === date.getMonth() &&\n new Date(x.Date).getFullYear() === date.getFullYear(),\n ).length !== 0\n ) {\n return true;\n }\n }\n return false;\n }\n\n private getBasket(queryParams: Partial) {\n const basket = this.basketService.get();\n\n if (basket) {\n return basket;\n } else {\n const hotelCode = SearchComponent.ParseHotelCode(queryParams);\n const arrival = SearchComponent.ParseArrival(queryParams);\n const stay = SearchComponent.ParseStay(queryParams);\n let rooms = SearchComponent.ParseRooms(queryParams);\n const single = SearchComponent.ParseSingle(queryParams);\n if (rooms === undefined) {\n rooms = [];\n }\n if (hotelCode && arrival && stay && rooms) {\n const params: SearchParams = {\n hotelCode,\n arrival,\n stay,\n rooms,\n single,\n ArrivalDate: 0,\n ArrivalFullYear: 0,\n ArrivalMonthName: '',\n DepartueDate: 0,\n DepartueFullYear: 0,\n DepartueMonthName: '',\n BookingFlow: 1,\n RateCode: '',\n ConferenceRoomCode: '',\n };\n return this.basketService.create(params);\n } else {\n throw new Error('Basket must not be empty');\n }\n }\n }\n\n private async buildSeatingData(selectedDate: Date, checkMonth = false) {\n return await this.loader.using(async () => {\n const seatingSpectra = await this.hotelService.GetECommerceSeatings(\n this.applicationState.CurrentHotelCode,\n selectedDate,\n selectedDate,\n await this.localeService.getLocale(),\n );\n\n const seatingWrapperArray = [] as SeatingWrapper[];\n const seatingArray = [] as SeatingUiModel[];\n\n let start = new Date();\n let end = new Date();\n\n if (checkMonth) {\n start = DateHelper.getFirstDateOfMonth(selectedDate);\n end = DateHelper.getLastDateOfMonth(selectedDate);\n } else {\n start = selectedDate;\n end = DateHelper.addDays(selectedDate, 0);\n }\n\n if (seatingSpectra && seatingSpectra.length !== 0) {\n const seatings = seatingSpectra.filter((x) => x.Rates !== null);\n\n for (const item of seatings) {\n const seatingPortal = await this.hotelService.GetECommerceTablePortalInfo(\n this.applicationState.CurrentHotelCode,\n start,\n end,\n item.ItemNumber,\n await this.localeService.getLocale(),\n this.bookingFlow,\n this.basket.bookings[0] ? this.basket.bookings[0].RateCode : '',\n );\n const info = seatingPortal.find((x) => x.ID === item.ItemNumber);\n\n if (info) {\n const seatingUiModel = {} as SeatingUiModel;\n\n const arrivals = [] as TableTickets[];\n\n for (const seat of item.Rates) {\n const model = {\n arrival: seat.Arrival,\n maxPers: seat.MaxPers,\n } as TableTickets;\n arrivals.push(model);\n }\n\n seatingUiModel.image = info.Image;\n seatingUiModel.characteristics = item.Characteristics;\n seatingUiModel.long = info.Long;\n seatingUiModel.sortIndex = info.SortIndex;\n seatingUiModel.seatingPlanId = info.ID;\n seatingUiModel.date = item.Rates[0].Arrival;\n seatingUiModel.tableTickets = arrivals;\n seatingUiModel.name = info.Name;\n seatingUiModel.selected = this.isTableSelected(item, selectedDate);\n\n seatingUiModel.tableDetails = {} as SeatingTableDetails;\n seatingUiModel.tableDetails.vareNr = info.SeatItems[0].VareNr;\n seatingUiModel.tableDetails.price = info.SeatItems[0].Price;\n seatingUiModel.tableDetails.rateCode = item.ItemNumber;\n\n seatingArray.push(seatingUiModel);\n }\n }\n\n for (const seating of seatingArray) {\n const midDate = DateHelper.FromUtcDate(seating.date.toString() as UTCDateString);\n const month = DateHelper.getTranslatedMonth(midDate.getMonth());\n const exist = seatingWrapperArray.find((x) => x.month === month) !== undefined;\n if (exist) {\n const wrapper = seatingWrapperArray.find((x) => x.month === month);\n\n if (wrapper !== undefined) {\n const skip = wrapper.data.find((x) => x.seatingPlanId === seating.seatingPlanId) === undefined;\n\n if (skip) {\n wrapper.data.push(seating);\n }\n }\n } else {\n const wrapper = {} as SeatingWrapper;\n if (month) {\n wrapper.month = month;\n wrapper.data = [] as SeatingUiModel[];\n wrapper.data.push(seating);\n\n seatingWrapperArray.push(wrapper);\n }\n }\n }\n }\n\n if (seatingArray.length === 0) {\n throw new EmptyError();\n }\n\n for (const item of seatingWrapperArray) {\n item.data = this.sortList(item.data);\n }\n\n return seatingWrapperArray;\n }, 'LOA_Configuration' as any);\n }\n\n private sortList(array: SeatingUiModel[]) {\n const sortedArray = [] as SeatingUiModel[];\n\n for (const item of array) {\n if (sortedArray.length === 0) {\n sortedArray.push(item);\n } else {\n if (sortedArray.filter((x) => x.sortIndex > item.sortIndex).length === 0) {\n sortedArray.push(item);\n } else {\n const object = sortedArray.filter((x) => x.sortIndex > item.sortIndex)[0];\n const index = sortedArray.indexOf(object);\n\n sortedArray.splice(index, 0, item);\n }\n }\n }\n\n return sortedArray;\n }\n}\n\nexport interface SelectedTableModel {\n time: TableArrival[];\n guestArrival: string;\n guestCount: number;\n accept: (model: SelectedTableModel) => void;\n close: () => void;\n}\n\nexport interface TableArrival {\n realDate: Date;\n clock: string;\n}\n\nenum dayStatus {\n closed = '#F87E7D',\n open = 'white',\n invalid = '#a9a9a9',\n runOut = '#707070',\n}\n\nexport interface CalendarModel {\n days: Day[];\n currentMonth: string;\n currentYear: number;\n}\n\nexport interface Day {\n date: Date;\n active: boolean;\n status: dayStatus;\n selected: boolean;\n}\n","
    \n
    \n {{ 'COM_Back' | t | async }}\n {{ 'COM_Continue' | t | async }}\n\n

    \n {{ 'COM_TableReservation' | t | async }}\n

    \n \n {{ 'COM_TableReservation' | t | async }}\n

    \n\n

    \n {{ 'COM_TableChooseProduct' | t | async }} ({{ guestCount }} {{ 'COM_Guests' | t | async }})\n {{ guestCountArray.length }}\n {{ 'COM_Guests' | t | async }}, {{ 'COM_TableChooseProducts' | t | async }}\n

    \n\n

    \n {{ 'COM_TableBookingFlowAddProduct' | t | async }}
    \n {{ 'COM_TableIfNotPressContinue' | t | async }}\n

    \n\n \n\n
    \n \n
    \n
      \n \n \n
    • \n

      {{ calendarDates.currentMonth | t | async }}

      \n {{ calendarDates.currentYear }}\n
    • \n
    \n
    \n\n
      \n
    • {{ 'CAL_Mon' | t | async }}
    • \n
    • {{ 'CAL_Tirs' | t | async }}
    • \n
    • {{ 'CAL_Ons' | t | async }}
    • \n
    • {{ 'CAL_Tors' | t | async }}
    • \n
    • {{ 'CAL_Fre' | t | async }}
    • \n
    • {{ 'CAL_Lor' | t | async }}
    • \n
    • {{ 'CAL_Sun' | t | async }}
    • \n
    \n\n
      \n \n
    \n
    \n
    \n

    {{ 'CAL_Occupied' | t | async }}

    \n
    \n

    {{ 'CAL_Available' | t | async }}

    \n
    \n

    {{ 'CAL_NotPossible' | t | async }}

    \n
    \n
    \n\n
    \n
    \n \n \n \n \n {{ 'COM_Price' | t | async }}\n {{ room.item.tableDetails.price | price | async }}\n \n
    \n
    \n
    \n \n \n \n \n

    \n {{ 'RPA_Image' | t | async }}\n

    \n
    \n
    \n
    \n
    \n
    \n \n {{ 'COM_AddToBasket' | t | async }}\n \n \n {{ 'COM_AddedToBasket' | t | async }}\n \n
    \n
    \n
    \n
    \n

    {{ room.item.name }}

    \n
    \n
    \n
    \n
    \n

    \n \n

    \n
    \n
    \n \n \n
    \n \n \n \n
    \n
    \n \n
    \n
    \n\n\n\n
    \n
    \n {{ 'SEA_Time' | t | async }}\n
    \n
    \n
    \n

    {{ 'SEA_Time' | t | async }}

    \n
    \n \n \n
    \n

    {{ 'COM_TableNumberOfGuestsForProduct' | t | async }}

    \n
    \n \n \n
    \n
    \n
    \n \n {{ 'PAR_Cancel' | t | async }}\n \n \n {{ 'COM_Continue' | t | async }}\n \n
    \n
    \n
    \n
    \n","import { ChangeDetectorRef, Component, Input } from '@angular/core';\nimport { animate, AnimationEvent, state, style, transition, trigger } from '@angular/animations';\n\n@Component({\n selector: 'app-slide-down',\n templateUrl: './slide-down.component.html',\n styleUrls: ['./slide-down.component.less'],\n animations: [\n trigger('expandCollapse', [\n state(\n 'collapsed',\n style({\n height: '200px',\n }),\n ),\n state(\n 'expanded',\n style({\n height: '*',\n }),\n ),\n transition('expanded => collapsed', animate('400ms ease-in')),\n transition('collapsed => expanded', animate('400ms ease-in')),\n ]),\n ],\n})\nexport class SlideDownComponent {\n openDescription: animationState = 'collapsed';\n showDescriptionBackdrop = true;\n @Input() content = '';\n @Input() showAnimation = false;\n\n constructor(private cdRef: ChangeDetectorRef) {}\n\n animateOpenDescription(): void {\n if (this.openDescription === 'collapsed') {\n this.openDescription = 'expanded';\n } else {\n this.openDescription = 'collapsed';\n }\n\n // As there is no debounce or anything, changes can happen really fast, this makes sure its synced\n this.cdRef.detectChanges();\n }\n\n contentAnimationEvent(event: AnimationEvent) {\n if (event.triggerName === 'expandCollapse') {\n if (event.toState === 'expanded' && event.phaseName === 'done') {\n this.showDescriptionBackdrop = false;\n }\n\n if (event.toState === 'collapsed' && event.phaseName === 'start') {\n this.showDescriptionBackdrop = true;\n }\n }\n }\n}\n\ntype animationState = 'collapsed' | 'expanded';\n","
    \n
    \n \n
    \n \n
    \n\n\n
    \n \n
    \n","import { Component } from '@angular/core';\nimport { combineLatest } from 'rxjs';\nimport { debounceTime, map } from 'rxjs/operators';\nimport { ApplicationStateService, BasketService, LocaleService, RoomCodeString } from 'src/app/core';\nimport { DateHelper } from 'src/app/helpers';\nimport { NavigationHelper } from '../../../helpers/navigation-helper';\n\n@Component({\n selector: 'app-basket',\n templateUrl: './basket.component.html',\n})\nexport class BasketComponent {\n state: ApplicationStateService | undefined;\n hasRooms = false;\n hasAddons = false;\n hasSeating = false;\n showCheckOut = false;\n hasTableReservation = false;\n hasGiftCard = false;\n showDate = false;\n\n data$ = combineLatest([this.basketService.basket$, this.localeService.translations$]).pipe(\n debounceTime(0),\n map(([basket, translations]) => {\n if (basket) {\n basket.params.ArrivalDate = basket.params.arrival.getDate();\n basket.params.ArrivalMonthName = DateHelper.getTranslatedMonth(basket.params.arrival.getMonth());\n basket.params.ArrivalFullYear = basket.params.arrival.getFullYear();\n const departureDate = DateHelper.addDays(basket.params.arrival, basket.params.stay);\n basket.params.DepartueDate = departureDate.getDate();\n basket.params.DepartueMonthName = DateHelper.getTranslatedMonth(departureDate.getMonth());\n basket.params.DepartueFullYear = departureDate.getFullYear();\n const rooms = basket.params.rooms.length;\n\n this.showDate = this.navigationHelper.checkUrlForParamater('RoomCounts');\n\n this.hasRooms = basket.bookings.some((x) => x.RoomCode !== undefined && x.RoomCode !== ('' as RoomCodeString));\n this.hasAddons = basket.bookings.some((x) => x.AddOns !== undefined && x.AddOns.length !== 0);\n this.hasTableReservation = basket.bookings.some(\n (x) => x.TableSeatings !== undefined && x.TableSeatings.length !== 0,\n );\n this.hasGiftCard = basket.bookings.some((x) => x.Giftcards !== undefined && x.Giftcards.length !== 0);\n this.hasSeating = basket.bookings.some((x) => x.Seatings !== undefined && x.Seatings.length !== 0);\n\n this.showCheckOut =\n (rooms === basket.bookings.length && this.hasRooms) ||\n (basket.bookings.length !== 0 &&\n basket.bookings[0].Seatings !== undefined &&\n basket.bookings[0].Seatings.length !== 0);\n\n return {\n params: basket.params,\n bookings: basket.bookings,\n queryParams: BasketService.BuildQueryParams(basket.params),\n roomsLabel: `${rooms} ${rooms === 1 ? translations.COM_Room : translations.COM_Rooms}`,\n addOnsLabel: (count: number) =>\n count === 0 ? translations.BIN_NoAddOns : `${translations.BIN_AddOns} (${count})`,\n };\n } else {\n return undefined;\n }\n }),\n );\n mobile = {\n opened: false,\n };\n\n monthNames = [\n 'CAL_M01',\n 'CAL_M02',\n 'CAL_M03',\n 'CAL_M04',\n 'CAL_M05',\n 'CAL_M06',\n 'CAL_M07',\n 'CAL_M08',\n 'CAL_M09',\n 'CAL_M10',\n 'CAL_M11',\n 'CAL_M12',\n ];\n\n constructor(\n private basketService: BasketService,\n private localeService: LocaleService,\n private navigationHelper: NavigationHelper,\n applicationState: ApplicationStateService,\n ) {\n this.state = applicationState;\n }\n\n backToStartClicked() {\n this.basketService.basketBadgeNumberSet = '0';\n }\n\n hideBasketClick() {\n this.basketService.hideBasket();\n }\n\n async CheckOut() {\n await this.navigationHelper.navigateToPage('/customer');\n }\n}\n","\n
    \n

    \n {{ 'BIN_Reservation' | t | async }}\n

    \n
    \n
    \n
    \n

    \n {{ 'BIN_Details' | t | async }}\n

    \n \n \n \n
    \n
    \n
    \n

    {{ state.HotelBasketInfo.Name }}

    \n

    {{ state.HotelBasketInfo.Address }}

    \n

    \n {{ state.HotelBasketInfo.PostalCode }}\n {{ state.HotelBasketInfo.City }}\n

    \n
    \n
    \n

    \n {{ 'COM_Arrival' | t | async }}: {{ data.params.ArrivalDate }}.\n {{ data.params.ArrivalMonthName | t | async }}\n {{ data.params.ArrivalFullYear }}\n

    \n

    \n {{ 'COM_Departure' | t | async }}: {{ data.params.DepartueDate }}.\n {{ data.params.DepartueMonthName | t | async }}\n {{ data.params.DepartueFullYear }}\n

    \n

    {{ state.RoomsLabel | t | async }}: {{ data.params.rooms.length }}

    \n
    \n
    \n
    \n\n
    \n

    \n {{ state.RoomLabel | t | async }}/{{ 'COM_Package' | t | async }}\n

    \n
    \n
    \n
    \n
    \n
    \n

    {{ state.RoomLabel | t | async }} {{ index | char }}

    \n
    \n \n \n \n
    \n
    \n \n \n \n
    \n
    \n

    {{ state.RoomTypeLabel | t | async }}: {{ booking.RoomName }}

    \n

    \n {{ 'BIN_Packagetype' | t | async }}:\n \n

    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n

    \n {{ state.EventLabel | t | async }}\n

    \n
    \n
    \n
    \n
    \n

    \n {{ seat.day }}. {{ seat.month | t | async }} {{ seat.year }} - {{ seat.Time }}\n

    \n
    \n \n \n \n \n \n \n \n \n
    \n
    \n

    {{ seat.TicketTotal }}x {{ 'SFO_BookEvent' | t | async }}: {{ seat.Name }}

    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n

    \n {{ 'APA_Services' | t | async }}\n

    \n \n
    \n
    \n
    \n

    {{ state.RoomLabel | t | async }} {{ index | char }}

    \n \n \n \n
    \n
    \n

    - {{ addon.Name }}

    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n

    \n {{ 'SFO_BookTableReservation' | t | async }}\n

    \n
    \n
    \n
    \n
    \n

    \n {{ table.Day }}. {{ table.translatedMonth | t | async }} {{ table.Year }} - {{ table.Time }}\n

    \n
    \n \n \n \n
    \n
    \n

    {{ table.Name }}

    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n

    \n {{ 'SFO_BookGiftcard' | t | async }}\n

    \n
    \n
    \n
    \n

    {{ card.Name }}

    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n\n\n
    \n

    \n {{ 'BIN_Reservation' | t | async }}\n

    \n \n
    \n
    \n

    \n {{ 'BIN_BasketEmpty' | t | async }}\n

    \n
    \n
    \n","import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { LogService } from '@com/logging';\nimport dayjs from 'dayjs';\nimport { ConfigHandler, /*SpectraDate,*/ DateHelper } from 'src/app/helpers';\nimport { StayAvailabilityResponse } from '../../../core/modules/hotel/data-hotel.service';\nimport { CalendarComponent, CalendarDateChangeEvent } from '../calendar/calendar.component';\n\nexport interface CalendarInputConfig {\n start: Date | null;\n end: Date | null;\n placeholder: string;\n showMonths: number;\n min: Date | null;\n max: Date | null;\n value: Date | null;\n month: dayjs.Dayjs;\n full: boolean;\n available: StayAvailabilityResponse[] | null;\n stay: number | undefined;\n}\n\nexport interface CalendarInputDateChangeEvent {\n date: Date | null;\n month: dayjs.Dayjs;\n}\n\n@Component({\n selector: 'app-calendar-input',\n templateUrl: './calendar-input.component.html',\n})\nexport class CalendarInputComponent implements CalendarInputConfig {\n @Input()\n set config(config: Partial | undefined) {\n if (config) {\n const changes = ConfigHandler.Apply(this, config);\n\n if (this.full && this.min && this.max) {\n const newMonth = DateHelper.asDayjs(this.min).startOf('month');\n if (!newMonth.isSame(this.month)) {\n this.month = newMonth;\n changes.month = true;\n }\n const newShowMonths = DateHelper.asDayjs(this.max).diff(this.month, 'month', false) + 2;\n if (newShowMonths !== this.showMonths) {\n this.showMonths = newShowMonths;\n changes.showMonths = true;\n }\n } else {\n if (!changes.month && changes.start) {\n this.month = this.start ? DateHelper.asDayjs(this.start).startOf('month') : dayjs().startOf('month');\n }\n }\n this.selected = CalendarInputComponent.BuildSelected(this.start, this.end);\n }\n }\n\n stay: number | undefined;\n show = false;\n start = null as Date | null;\n end = null as Date | null;\n selected = [] as Date[];\n placeholder = '';\n showMonths = 1;\n full = false;\n min = null as Date | null;\n max = null as Date | null;\n available: StayAvailabilityResponse[] | null = [];\n value = DateHelper.today() as Date | null;\n month = this.start ? DateHelper.asDayjs(this.start).startOf('month') : dayjs().startOf('month');\n @ViewChild(CalendarComponent, { static: false }) calendar: CalendarComponent | undefined;\n @Output() dateChange = new EventEmitter();\n @Output() monthChange = new EventEmitter();\n @Input() loadingdData: boolean | undefined;\n @Input() isArrivalDate: boolean | undefined;\n\n constructor(private log: LogService) {}\n\n showCalendar() {\n this.log.debug('CalendarInput show()');\n this.setShow(true);\n }\n\n closeCalendar() {\n this.log.debug('CalendarInput show()');\n this.setShow(false);\n }\n\n onInputClick() {\n this.log.debug('CalendarInput onInputClick()');\n this.setShow(!this.show);\n }\n\n onCalendarDateChange(e: CalendarDateChangeEvent) {\n this.log.debug(`CalendarInput onCalendarChange(${JSON.stringify(e)})`);\n this.show = false;\n this.config = { value: e.date, month: e.month };\n this.dateChange.emit({\n date: this.value,\n month: this.month,\n });\n }\n\n onMonthClick(month: Date) {\n this.monthChange.emit(month);\n }\n\n onOverlayClick() {\n this.log.debug('CalendarInput onOverlayClick()');\n this.show = false;\n }\n\n private setShow(show: boolean) {\n this.log.trace(`CalendarInput show(${show})`);\n this.show = show;\n setTimeout(() => {\n if (this.show && this.calendar) {\n this.calendar.scrollToMonth();\n }\n }, 100);\n }\n\n private static BuildSelected(start: Date | null, end: Date | null) {\n if (start) {\n if (end) {\n let days = 1;\n\n const res = new Date().getTimezoneOffset();\n // Check if departure is spanding from summertime to wintertime and back.\n if (end.getTimezoneOffset() !== res) {\n // Negative timezone\n if (res <= 0) {\n days = 0;\n }\n if (end.getMonth() === 3) {\n days = 1;\n }\n if (res > 0) {\n days = 1;\n }\n\n if (end.getTimezoneOffset() !== start.getTimezoneOffset()) {\n // Positive timezone\n if (res > 0 && res !== 180 && res !== 240) {\n days = 0;\n }\n const country = Intl.DateTimeFormat().resolvedOptions().timeZone;\n if (\n country === 'America/Port-au-Prince' ||\n country === 'America/Havana' ||\n country === 'America/Indianapolis' ||\n country === 'America/Grand_Turk' ||\n country === 'America/Halifax'\n ) {\n days = 0;\n }\n }\n // If arrival and departure is in the same timezone but current date is in another timezone. (summertime or wintertime)\n if (end.getTimezoneOffset() === start.getTimezoneOffset()) {\n // Negative timezone\n if (res <= 0) {\n days = 1;\n }\n if (end.getMonth() === 3) {\n days = 0;\n }\n }\n }\n\n const stay = DateHelper.daysBetween(start, end, days);\n\n return Array.from(Array(stay), (x, index) => DateHelper.addDays(start, index));\n }\n return [start];\n }\n return [];\n }\n}\n","
    \n
    \n
    \n
    \n {{ (value | date | async) || placeholder }}\n
    \n \n
    \n
    \n \n
    \n
    \n","import {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { LogService } from '@com/logging';\nimport dayjs from 'dayjs';\nimport { lastValueFrom, Subscription } from 'rxjs';\nimport { first } from 'rxjs/operators';\nimport { ApplicationStateService, Loader, LocaleService } from 'src/app/core';\nimport {\n ActionStack,\n AspDateString,\n /*SpectraDate,*/ ConfigHandler,\n DateHelper,\n UTCDateTimeString,\n} from 'src/app/helpers';\nimport { StayAvailabilityResponse } from '../../../core/modules/hotel/data-hotel.service';\n\nexport interface CalendarConfig {\n showLegend: boolean;\n min: Date | null;\n max: Date | null;\n date: Date | null;\n hovered: Date[] | null;\n selected: Date[] | null;\n start: Date | null;\n showOnlyCurrentMonthDays: boolean;\n available: StayAvailabilityResponse[] | null;\n showMonths: number;\n month: dayjs.Dayjs;\n startOfWeek: number;\n full: boolean;\n stay: number | undefined;\n}\n\nexport interface CalendarDateChangeEvent {\n date: Date;\n month: dayjs.Dayjs;\n}\n\n@Component({\n selector: 'app-calendar',\n templateUrl: './calendar.component.html',\n})\nexport class CalendarComponent implements CalendarConfig, OnInit, OnDestroy, OnChanges {\n @Input()\n set config(config: Partial | undefined) {\n if (config) {\n this.configStack\n .push(async () => {\n await this.applyConfig(config);\n })\n .catch(undefined);\n }\n }\n private subscriptions: Subscription[] = [];\n private over = undefined as Date | undefined;\n\n newxClicked: boolean | undefined;\n @Input() loadingdData: boolean | undefined;\n @Input() isArrivalDate: boolean | undefined;\n configStack = new ActionStack(undefined);\n showLegend = false;\n min = null as Date | null;\n max = null as Date | null;\n date = null as Date | null;\n hovered = null as Date[] | null;\n selected = null as Date[] | null;\n start = null as Date | null;\n showOnlyCurrentMonthDays = true;\n available = null as StayAvailabilityResponse[] | null;\n showMonths = 1;\n month = dayjs().startOf('month');\n startOfWeek = 1; // 1 - monday, 0 - sunday\n valid = false;\n full = false;\n stay: number | undefined;\n showLoader = false;\n months: Promise[] = [];\n monthsSubstract: number[] = [];\n days: string[] = [];\n @Output() dateChange = new EventEmitter();\n @Output() monthChange = new EventEmitter();\n @Output() hover = new EventEmitter();\n @Output() validChange = new EventEmitter();\n @ViewChild('scrollContainer', { static: false }) scrollContainer: ElementRef | undefined;\n\n scroll = 0;\n\n constructor(\n private log: LogService,\n private loader: Loader,\n private localeService: LocaleService,\n private applicationstate: ApplicationStateService,\n ) {}\n\n ngOnChanges(): void {\n this.showLoader = this.loadingdData === undefined ? false : this.loadingdData;\n }\n\n ngOnInit() {\n this.subscriptions.push(\n this.localeService.translations$.subscribe((translations) => {\n this.config = {\n startOfWeek: +translations.CAL_WeekStart || 0 /* can't be 1 because zero became unreachable */,\n };\n }),\n );\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach((s) => s.unsubscribe());\n this.subscriptions = [];\n }\n\n onPrevMonthClick() {\n this.config = { month: this.month.add(-1, 'month') };\n const date = this.month.toDate();\n this.monthChange.emit(DateHelper.addMonth(date, -1));\n }\n\n onNextMonthClick() {\n this.config = { month: this.month.add(1, 'month') };\n const date = this.month.toDate();\n this.monthChange.emit(DateHelper.addMonth(date, 2));\n }\n\n onDayClick(day: Day) {\n if (!day.available && this.isArrivalDate) {\n return;\n }\n\n if (day.arrival && this.isArrivalDate) {\n return;\n }\n this.log.debug(`Calendar onDayClick(${day.date})`);\n if (day.enabled) {\n this.dateChange.emit({\n date: day.date,\n month: this.month,\n });\n }\n }\n\n async onMouseMove(day: Day) {\n if (!this.over || !DateHelper.isEqual(this.over, day.date)) {\n this.over = day.date;\n if (!this.date) {\n await this.refreshMonths();\n }\n this.hover.emit(day.date);\n }\n }\n\n async onCalendarScroll() {\n const translations: {\n [key: string]: string;\n } = await lastValueFrom(this.localeService.translations$.pipe(first()));\n\n const el = this.scrollContainer && this.scrollContainer.nativeElement;\n if (el) {\n this.scroll = el.scrollHeight - el.scrollTop - el.clientHeight;\n if (el.scrollHeight - el.scrollTop - el.clientHeight <= 250) {\n const month = this.min ? DateHelper.asDayjs(this.min).startOf('month') : this.month;\n this.monthChange.emit(DateHelper.addMonth(month.toDate(), this.months.length));\n this.months.push(\n CalendarComponent.BuildMonthAsync(month.add(this.months.length, 'month'), this.startOfWeek, translations),\n );\n\n await this.refreshMonths();\n } else if (el.scrollHeight - el.scrollTop - el.clientHeight >= 600) {\n const month = this.min ? DateHelper.asDayjs(this.min).startOf('month') : this.month;\n // used to figure out how many month to substract from current month when scrolling back\n const length = this.monthsSubstract[this.monthsSubstract.length - 1];\n\n let numberToAdd = 1;\n\n if (length === undefined) {\n this.monthsSubstract.push(numberToAdd);\n } else {\n numberToAdd = numberToAdd + 1;\n if (numberToAdd < 12) {\n this.monthsSubstract.push(numberToAdd);\n }\n }\n\n this.monthChange.emit(DateHelper.addMonth(month.toDate(), this.monthsSubstract.length));\n\n await this.refreshMonths();\n }\n }\n }\n\n async applyConfig(config: Partial) {\n const changes = ConfigHandler.Apply(this, config);\n if (this.min && this.date && this.date.getTime() < this.min.getTime()) {\n this.date = this.min;\n }\n if (this.max && this.date && this.date.getTime() > this.max.getTime()) {\n this.date = this.max;\n }\n if (changes.date && this.date) {\n if (this.start && this.start.getTime() > this.date.getTime()) {\n this.start = this.date;\n this.date = null;\n } else {\n if (!changes.month) {\n const d = DateHelper.asDayjs(this.date);\n const diff = d.diff(this.month, 'month', true);\n if (diff < 0 || diff >= this.showMonths) {\n this.month = d.startOf('month');\n changes.month = true;\n }\n }\n }\n }\n if (changes.month || changes.startOfWeek || changes.showMonths || changes.date || changes.start) {\n await this.loader.using(async () => {\n const translations: {\n [key: string]: string;\n } = await lastValueFrom(this.localeService.translations$.pipe(first()));\n this.days = [0, 1, 2, 3, 4, 5, 6].map((day) =>\n (translations as { [key: string]: string })[`CAL_D${(day + this.startOfWeek + 7) % 7}`].substring(0, 1),\n );\n if (!this.full) {\n this.months = CalendarComponent.BuildMonths(this.month, this.startOfWeek, this.showMonths, translations);\n } else {\n const month = this.min ? DateHelper.asDayjs(this.min).startOf('month') : this.month;\n const diff = Math.floor(\n DateHelper.asDayjs(this.date || this.start || new Date(month.valueOf())).diff(month, 'month', true),\n );\n this.months = CalendarComponent.BuildMonths(month, this.startOfWeek, Math.max(diff + 3, 3), translations);\n }\n }, 'LOA_HotelInformation');\n }\n await this.refreshMonths();\n }\n\n scrollToMonth() {\n const calendarContentEl = this.scrollContainer && this.scrollContainer.nativeElement;\n if (calendarContentEl) {\n const selected = calendarContentEl.getElementsByClassName('selected');\n if (selected.length > 0) {\n const dayEl = selected[0].parentElement;\n if (dayEl) {\n const monthEl = dayEl.parentElement;\n if (monthEl) {\n const monthRect = monthEl.getBoundingClientRect();\n const calendarContentRect = calendarContentEl.getBoundingClientRect();\n calendarContentEl.scrollTop = calendarContentEl.scrollTop + monthRect.top - calendarContentRect.top;\n }\n }\n }\n }\n }\n\n private async refreshMonths() {\n if (this.months) {\n (await Promise.all(this.months)).forEach(({ month, weeks }) => {\n weeks.forEach((week) => {\n week.days.forEach((day) => {\n // Available and clickable dates\n day.enabled =\n (!this.min || this.min.getTime() <= day.date.getTime()) &&\n (!this.max || this.max.getTime() >= day.date.getTime());\n\n // Decide if days are shown as available or unavailable in calendar\n if (this.available && this.available.length !== 0) {\n const date = this.available.find(\n (x) =>\n DateHelper.FromUtcDate(x.Date.toString() as UTCDateTimeString).getDate() === day.date.getDate() &&\n DateHelper.FromUtcDate(x.Date.toString() as UTCDateTimeString).getMonth() === day.date.getMonth() &&\n DateHelper.FromUtcDate(x.Date.toString() as UTCDateTimeString).getFullYear() ===\n day.date.getFullYear(),\n );\n if (date) {\n if (date.Reason === 'CFA') {\n day.arrival = true;\n } else if (date.Reason === 'CFD') {\n day.departure = true;\n } else if (\n date.Reason === 'HOTELCLOSED' ||\n date.Reason === 'HOTELCLOSEDDAYCOLOR' ||\n date.Reason === 'CL' ||\n date.Reason === 'NOTHINGVACANT' ||\n date.Reason === 'NORATECODES' ||\n date.Reason === 'NORATECODEAVAILABILITY'\n ) {\n day.available = false;\n } else {\n day.available = true;\n }\n } else {\n day.available = true;\n }\n }\n\n // Selected dates\n day.selected = !!(\n (this.date && DateHelper.isEqual(this.date, day.date)) ||\n (!this.date && this.start && DateHelper.isEqual(this.start, day.date)) ||\n (this.selected && !!this.selected.find((d) => DateHelper.isEqual(d, day.date))) ||\n (!this.date &&\n this.start &&\n this.over &&\n day.enabled &&\n this.over.getTime() >= day.date.getTime() &&\n this.start.getTime() <= day.date.getTime())\n );\n\n if (this.start) {\n // FirstSelected date calendar\n day.selectedFirst = !!(\n this.selected &&\n this.selected.length > 0 &&\n DateHelper.isEqual(day.date, this.selected[0])\n );\n\n if (this.selected !== null && this.applicationstate.DepartureDate !== null) {\n this.selected.push(this.applicationstate.DepartureDate);\n }\n\n // LastSelected date in calendar\n day.selectedLast = !!(\n this.selected &&\n this.selected.length > 0 &&\n DateHelper.isEqual(day.date, this.selected[this.selected.length - 1])\n );\n }\n\n day.hovered = !!(this.hovered && this.hovered.find((d) => DateHelper.isEqual(d, day.date)));\n day.hoveredFirst = !!(\n this.hovered &&\n this.hovered.length > 0 &&\n DateHelper.isEqual(day.date, this.hovered[0])\n );\n day.hoveredLast = !!(\n this.hovered &&\n this.hovered.length > 0 &&\n DateHelper.isEqual(day.date, this.hovered[this.hovered.length - 1])\n );\n day.visible = !this.showOnlyCurrentMonthDays || day.date.getMonth() /*.getUTCMonth()*/ === month;\n CalendarComponent.updateCls(day);\n });\n });\n });\n } else {\n this.log.warn('Calendar months are not ready yet.');\n }\n this.invalidate();\n }\n\n private invalidate() {\n let valid = true;\n if (this.available) {\n const available = this.available;\n if (valid && this.selected) {\n const selected = this.selected.slice(0, this.selected.length - 1); // it's ok when last day in not available for arrival\n if (\n selected.find(\n (date) =>\n !available.find((d) =>\n DateHelper.isEqual(DateHelper.FromAspDate(d.Date.toString() as AspDateString), date),\n ),\n )\n ) {\n valid = false;\n }\n }\n }\n if (this.valid !== valid) {\n this.valid = valid;\n this.validChange.emit(this.valid);\n }\n }\n\n private static updateCls(day: Day) {\n day.cls = '';\n if (day.visible) {\n if (day.selected) {\n day.cls += 'selected ';\n }\n if (day.selectedFirst) {\n day.cls += 'selected-first ';\n }\n if (day.selectedLast) {\n day.cls += 'selected-last ';\n }\n if (day.hovered) {\n day.cls += 'marked ';\n }\n if (day.hoveredFirst) {\n day.cls += 'marked-first ';\n }\n if (day.hoveredLast) {\n day.cls += 'marked-last ';\n }\n if (!day.available) {\n day.cls += 'occupied ';\n }\n if (day.arrival) {\n day.cls += 'arrival ';\n }\n if (day.departure) {\n day.cls += 'departure ';\n }\n if (!day.enabled) {\n day.cls += 'disabled ';\n }\n } else {\n day.cls += 'hidden ';\n }\n }\n\n private static BuildMonths(\n startMonth: dayjs.Dayjs,\n startOfWeek: number,\n showMonths: number,\n translations: { [key: string]: string },\n ) {\n return Array.from(Array(showMonths), async (item, index) => {\n const m = startMonth.add(index, 'month');\n return await this.BuildMonthAsync(m, startOfWeek, translations);\n });\n }\n\n private static async BuildMonthAsync(m: dayjs.Dayjs, startOfWeek: number, translations: { [key: string]: string }) {\n return await new Promise((resolve, reject) => {\n setTimeout(() => {\n try {\n resolve(this.BuildMonth(m, startOfWeek, translations));\n } catch (err) {\n reject(err);\n }\n }, 0);\n });\n }\n\n private static BuildMonth(m: dayjs.Dayjs, startOfWeek: number, translations: { [key: string]: string }) {\n const month = {\n month: m.month(),\n name: `${translations[m.format('[CAL_M]MM')]} ${m.format('YYYY')}`,\n weeks: [] as Week[],\n };\n const startOfMonth = m.startOf('month');\n const shiftedStartOfMonth = startOfMonth.add(-startOfWeek, 'day');\n const shiftedStartofWeek = shiftedStartOfMonth.startOf('week');\n const startDay = shiftedStartofWeek.add(startOfWeek, 'day');\n const endDay = m.endOf('month');\n let date = new Date(startDay.year(), startDay.month(), startDay.date());\n const end = new Date(endDay.year(), endDay.month(), endDay.date());\n let week: Week = { days: [] };\n while (date.getTime() <= end.getTime()) {\n for (let i = 0; i < 7; i++) {\n const day: Day = {\n available: true,\n date,\n enabled: true,\n selected: false,\n selectedFirst: false,\n selectedLast: false,\n visible: true,\n hovered: false,\n hoveredFirst: false,\n hoveredLast: false,\n cls: '',\n arrival: false,\n departure: false,\n closed: false,\n };\n this.updateCls(day);\n week.days.push(day);\n date = DateHelper.addDays(date, 1);\n }\n month.weeks.push(week);\n week = { days: [] };\n }\n return month;\n }\n}\n\ninterface Month {\n month: number;\n name: string;\n weeks: Week[];\n}\n\ninterface Week {\n days: Day[];\n}\n\ninterface Day {\n date: Date;\n visible: boolean;\n selected: boolean;\n selectedFirst: boolean;\n selectedLast: boolean;\n enabled: boolean;\n available: boolean;\n arrival: boolean;\n departure: boolean;\n closed: boolean;\n hovered: boolean;\n hoveredFirst: boolean;\n hoveredLast: boolean;\n cls: string;\n}\n","
    \n 0\">\n
    \n
    \n\n
    \n
    \n
    \n\n
    \n\n
    \n\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n

    {{ 'LOA_Availability' | t | async }}

    \n
    \n
    \n
    \n
    {{ day }}
    \n
    \n
    \n
    \n 1 ? 'l6' : 'l12' }}\">\n \n
    \n \n
    {{ m.name }}
    \n \n
    \n
    \n \n \n \n
    {{ m.name }}
    \n \n \n \n
    \n
    \n
    \n
    {{ day }}
    \n
    \n
    \n
    \n
    \n \n
    \n {{ day.date.getDate() }}\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n {{ 'CAL_Occupied' | t | async }}\n
    \n
    \n \n {{ 'CAL_Arrival' | t | async }}\n
    \n
    \n \n {{ 'CAL_Departure' | t | async }}\n
    \n
    \n \n\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'app-checkbox',\n templateUrl: './checkbox.component.html',\n})\nexport class CheckboxComponent {\n isChecked = false;\n @Output() changed = new EventEmitter();\n\n @Input()\n set checked(checked: boolean) {\n this.isChecked = checked;\n }\n\n constructor() {}\n\n onClick() {\n this.isChecked = !this.isChecked;\n this.changed.emit(this.isChecked);\n }\n}\n","
    \n \n
    \n \n
    \n \n
    \n","import { Component, ContentChild, ElementRef, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\nimport { LogService } from '@com/logging';\n\n@Component({\n selector: 'app-dropdown',\n templateUrl: './dropdown.component.html',\n})\nexport class DropdownComponent {\n show = false;\n listClassName = 'a-dropdown-list'; // required for fix for IE focus event\n @Output() changed = new EventEmitter();\n\n @Input() data: T[] = [];\n @Input() value: T | undefined;\n @Input() flexsible: boolean | undefined;\n\n @ContentChild('itemTemplate', { static: false }) itemTemplate: TemplateRef | undefined;\n @ContentChild('valueTemplate', { static: false }) valueTemplate: TemplateRef | undefined;\n\n constructor(private log: LogService) {}\n\n onOverlayClick() {\n this.log.debug('Dropdown onOverlayClick()');\n this.show = false;\n }\n\n onFocusOut(e: MouseEvent) {\n this.log.debug('Dropdown onFocusOut()');\n // fix for IE focusout event\n if (e.relatedTarget && (e.relatedTarget as HTMLElement).className !== this.listClassName) {\n this.onOverlayClick();\n }\n }\n\n onItemClick(item: T | undefined) {\n this.log.debug('Dropdown onItemClick()', item);\n this.show = false;\n this.value = item;\n this.changed.emit(this.value);\n }\n\n onValueClick() {\n this.log.debug('Dropdown onValueClick()');\n this.show = !this.show;\n }\n\n onKeyUp(keyCode: number) {\n this.log.debug(`Dropdown onKeyUp(${keyCode})`);\n switch (keyCode) {\n case 32:\n this.onValueClick();\n break; // space\n // case 38: this.selectPrevItem(); break; // up\n // case 40: this.selectNextItem(); break; // down\n }\n }\n}\n","
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n
    \n\n","import {\n Component,\n ContentChild,\n ElementRef,\n HostListener,\n Input,\n OnChanges,\n SimpleChanges,\n TemplateRef,\n} from '@angular/core';\nimport { LogService } from '@com/logging';\n\n@Component({\n selector: 'app-expandable-media-list',\n templateUrl: './expandable-media-list.component.html',\n})\nexport class ExpandableMediaListComponent implements OnChanges {\n // eslint-disable-next-line no-use-before-define\n @Input() usePageContainer = true;\n @Input() insideDetails = false;\n @Input()\n set data(data: T[] | undefined) {\n this._data = data || [];\n }\n\n private _data: T[] = [];\n\n groupList: T[][] = [];\n\n @Input() selected: T | undefined;\n\n @ContentChild('itemTemplate', { static: false }) itemTemplate: TemplateRef | undefined;\n @ContentChild('selectedItemTemplate', { static: false })\n selectedItemTemplate: TemplateRef | undefined;\n\n constructor(private log: LogService) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n this.groupList = ExpandableMediaListComponent.buildGroupList(\n this._data,\n window.innerWidth,\n this.usePageContainer !== true ? 2 : 3,\n );\n }\n\n @HostListener('window:resize')\n onResize() {\n this.log.trace('ExpandableMediaList onResize()');\n this.groupList = ExpandableMediaListComponent.buildGroupList(\n this._data,\n window.outerWidth,\n this.usePageContainer !== true ? 2 : 3,\n );\n }\n\n static buildGroupList(list: T[], width: number, splitterLength: number) {\n const splitter = width >= 992 ? splitterLength : width >= 600 ? 2 : 1;\n const result: T[][] = [];\n let group: T[] = [];\n list.forEach((item) => {\n if (group.length < splitter) {\n group.push(item);\n } else {\n result.push(group);\n group = [item];\n }\n });\n result.push(group);\n return result;\n }\n}\n","
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n","import {\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { LogService } from '@com/logging';\n\n@Component({\n selector: 'app-popup',\n templateUrl: './popup.component.html',\n})\nexport class PopupComponent {\n shouldShow = false;\n left = 0;\n @Input() align?: 'left' | 'right' | 'center';\n\n @Output() opened = new EventEmitter();\n @Output() closed = new EventEmitter();\n\n @ContentChild('itemTemplate', { static: false }) itemTemplate: TemplateRef | undefined;\n @ContentChild('contentTemplate', { static: false }) contentTemplate: TemplateRef | undefined;\n @ViewChild('popupContent', { static: false }) popupContent: ElementRef | undefined;\n @ViewChild('popupItem', { static: false }) popupItem: ElementRef | undefined;\n\n constructor(private log: LogService) {}\n\n @Input() set show(shouldShow: boolean) {\n this.applyShow(shouldShow);\n }\n\n onItemClick() {\n this.log.debug(`Popup[${this.shouldShow}] onItemClick()`);\n this.applyShow(!this.shouldShow);\n }\n\n onOverlayClick() {\n this.log.debug(`Popup[${this.shouldShow}] onOverlayClick()`);\n this.applyShow(false);\n }\n\n private applyShow(shouldShow: boolean) {\n if (this.shouldShow !== shouldShow) {\n this.left = this.calculatePosition();\n this.shouldShow = shouldShow;\n if (shouldShow) {\n this.opened.emit();\n } else {\n this.closed.emit();\n }\n }\n }\n\n private calculatePosition() {\n if (this.popupItem && this.popupItem.nativeElement) {\n const width = this.popupItem.nativeElement.clientWidth;\n switch (this.align) {\n case 'left':\n return 0;\n case 'right':\n return width;\n default:\n return 0.5 * width;\n }\n }\n return 0;\n }\n}\n","
    \n \n
    \n\n
    \n
    \n \n
    \n\n","import { Injectable } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { LogService } from '../../../../projects/com-logging/src/public-api';\nimport { theme } from '../../../styles/theme';\nimport {\n ApplicationStateService,\n BasketQueryParams,\n ConfigService,\n HotelCodeString,\n HotelService,\n Loader,\n LocaleService,\n} from '../../core';\n\n@Injectable()\nexport class DesignConfiguration {\n constructor(\n private loader: Loader,\n private hotelService: HotelService,\n private applicationState: ApplicationStateService,\n private log: LogService,\n private config: ConfigService,\n private router: Router,\n private route: ActivatedRoute,\n private localeService: LocaleService,\n ) {}\n\n async addPageBackground() {\n await this.loader.using(\n async () => {\n await this.hotelService.BuildApplicationState();\n const res = this.applicationState.BackGroundimage;\n if (res && !res.includes('no-image')) {\n if (this.applicationState.AnimateBackground === 'false') {\n document.body.classList.remove('addBackGroundWithAnimation');\n document.body.classList.add('addBackGround');\n } else {\n document.body.classList.add('addBackGroundWithAnimation');\n }\n document.body.style.backgroundImage = 'url(' + res + ')';\n const w = document.documentElement.clientWidth;\n if (w <= 1170) {\n document.body.classList.add('addBackGround');\n document.body.classList.remove('addBackGroundWithAnimation');\n }\n } else {\n document.body.classList.remove('addBackGround');\n document.body.style.backgroundImage = '';\n }\n },\n 'LOA_HotelInformation',\n false,\n );\n }\n\n addProductScrolling() {\n const w = document.documentElement.clientWidth;\n if (w <= 1170) {\n return true;\n } else {\n return false;\n }\n }\n\n async applyTheme() {\n await this.loader.using(\n async () => {\n try {\n const url = new URL(window.location.href);\n const hotelCode = url.searchParams.get('HotelCode')\n ? url.searchParams.get('HotelCode')\n : this.applicationState.CurrentHotelCode;\n if (hotelCode) {\n const res = await this.hotelService.GetECommerceDepartmentInformation(\n this.applicationState.CurrentHotelCode,\n await this.localeService.getLocale(),\n );\n this.applicationState.ApplicationColor = res.Settings.CustomColor as string;\n this.applicationState.ApplicationColorTextIcon = res.Settings.CustomColorTextIcon as string;\n }\n await this.hotelService.BuildApplicationState();\n this.applicationState.ApplicationColor = await this.RestrictColor(\n this.applicationState.ApplicationColor,\n (\n await this.config.getAppSettings()\n ).PrimaryColor,\n );\n this.applicationState.ApplicationColorTextIcon = await this.RestrictColor(\n this.applicationState.ApplicationColorTextIcon,\n (\n await this.config.getAppSettings()\n ).PrimaryColor,\n );\n\n document.documentElement.style.setProperty(\n '--primary-application-color',\n this.applicationState.ApplicationColor,\n );\n document.documentElement.style.setProperty(\n '--primary-application-color-text-icon',\n this.applicationState.ApplicationColorTextIcon,\n );\n document.documentElement.style.setProperty(\n '--primary-application-font',\n this.applicationState.ApplicationFont,\n );\n\n this.config.applyStyles(theme(this.applicationState.ApplicationColor));\n this.decideDynamicTextColor(this.applicationState.ApplicationColor);\n } catch (err: any) {\n this.log.fatal(`App applyTheme() failed. ${err.message}`);\n }\n },\n undefined,\n false,\n );\n }\n\n async applyHotelChange(hotelCode: HotelCodeString) {\n const queryParams: Partial = {\n HotelCode: hotelCode,\n };\n await this.router.navigate([], {\n replaceUrl: true,\n relativeTo: this.route,\n queryParamsHandling: 'merge',\n queryParams,\n });\n }\n\n private async RestrictColor(color: string, fallback: string) {\n const RestrictedColors = ['', 'none', 'inherit', 'initial'];\n return RestrictedColors.some((restrictedColor) => restrictedColor === color) ? fallback : color;\n }\n\n private decideDynamicTextColor(color: string) {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(color);\n\n let textColor = getComputedStyle(document.documentElement).getPropertyValue('--color-dynamic');\n\n if (result !== null) {\n const R = parseInt(result[1], 16);\n const G = parseInt(result[2], 16);\n const B = parseInt(result[3], 16);\n\n const luminance = (0.299 * R + 0.587 * G + 0.114 * B) / 255;\n\n if (luminance > 0.5) {\n textColor = '#000000';\n } else {\n textColor = '#FFFFFF';\n }\n }\n\n this.applicationState.ApplicationTextColor = textColor;\n document.documentElement.style.setProperty('--color-dynamic', this.applicationState.ApplicationTextColor);\n }\n}\n","import { AfterViewInit, ChangeDetectorRef, Directive, ElementRef, Input, Output } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Directive({\n selector: '[appMaxHeight]',\n})\nexport class MaxHeightDirective implements AfterViewInit {\n @Output() isMaxHeight = new BehaviorSubject(false);\n @Input() maxHeight = 200;\n\n constructor(private el: ElementRef, private cdRef: ChangeDetectorRef) {}\n\n ngAfterViewInit() {\n if (this.el.nativeElement) {\n const { height } = this.el.nativeElement.getBoundingClientRect();\n this.isMaxHeight.next(height > 200);\n this.cdRef.detectChanges();\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'char' })\nexport class CharPipe implements PipeTransform {\n static ConvertToChar(index: number) {\n return String.fromCharCode(index + 65 /*A*/);\n }\n\n transform(index: number | undefined) {\n return typeof index === 'number' ? CharPipe.ConvertToChar(index) : '';\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { map } from 'rxjs/operators';\nimport { LocaleService } from 'src/app/core';\nimport { /*SpectraDate,*/ AspDateString, DateHelper } from 'src/app/helpers';\n\n@Pipe({ name: 'date' })\nexport class DatePipe implements PipeTransform {\n constructor(private ls: LocaleService) {}\n\n transform(date: /*SpectraDate | */ Date | undefined, daysShift: number | undefined) {\n return this.ls.translations$.pipe(\n map((translations) => {\n /*if (date instanceof SpectraDate) {\n const d = daysShift ? date.addDays(daysShift) : date;\n const month = translations[\n `CAL_M${DateHelper.format(d, 'MM')}` as 'CAL_M01'\n ].substring(0, 3);\n return DateHelper.format(d, `DD[.] [${month}] YYYY`);\n }\n\n else */ if (date instanceof Date) {\n const d = daysShift ? DateHelper.addDays(date, daysShift) : date;\n const month = translations[`CAL_M${DateHelper.format(d, 'MM')}` as 'CAL_M01'].substring(0, 3);\n return DateHelper.format(d, `DD[.] [${month}] YYYY`);\n } else if (typeof date === 'string') {\n const _date = DateHelper.FromAspDate(date as AspDateString);\n const d = daysShift ? DateHelper.addDays(_date, daysShift) : _date;\n const month = translations[`CAL_M${DateHelper.format(d, 'MM')}` as 'CAL_M01'].substring(0, 3);\n return DateHelper.format(d, `DD[.] [${month}] YYYY`);\n }\n\n return '';\n }),\n );\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { map } from 'rxjs/operators';\nimport { LocaleService } from 'src/app/core';\nimport { GuestType, RoomGuests } from 'src/app/helpers';\n\n@Pipe({ name: 'guests' })\nexport class GuestsPipe implements PipeTransform {\n constructor(private ls: LocaleService) {}\n\n transform(guests: RoomGuests | undefined) {\n return this.ls.translations$.pipe(\n map((translations) => {\n if (guests instanceof RoomGuests) {\n const adults = guests.get(GuestType.Adult);\n let text = `${adults} ${adults === 1 ? translations.COM_Adult : translations.COM_Guest_10}`;\n const seniors = guests.get(GuestType.Senior);\n if (seniors > 0) {\n text += `, ${seniors} ${translations.COM_Guest_11}`;\n }\n const children = guests.get(GuestType.Child);\n if (children > 0) {\n text += `, ${children} ${children === 1 ? translations.COM_Child : translations.COM_Guest_8}`;\n }\n const infants = guests.get(GuestType.Infant);\n if (infants > 0) {\n text += `, ${infants} ${translations.COM_Guest_7}`;\n }\n const teens = guests.get(GuestType.UnknownType1);\n if (teens > 0) {\n text += `, ${teens} ${translations.COM_Guest_9}`;\n }\n return text;\n }\n return '';\n }),\n );\n }\n}\n","export * from './guests.pipe';\nexport * from './date.pipe';\nexport * from './char.pipe';\nexport * from './number.pipe';\nexport * from './price.pipe';\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'number' })\nexport class NumberPipe implements PipeTransform {\n /**\n * @param format should looks like '(h )(d,)(D2)' where\n * after `h` is ` ` and it is thousands delimiter\n * after `d` is `,` and it is decimal part delimiter\n * after `D` is `2` and it is how many decimal number is used\n */\n static Parse(amount: string, format: string) {\n if (!amount) {\n return null;\n }\n const f = this.ParseFormat(format);\n return parseFloat(amount.replace(new RegExp(f.h, 'g'), '').replace(f.d, '.'));\n }\n\n /**\n * @param format should looks like '(h )(d,)(D2)' where\n * after `h` is ` ` and it is thousands delimiter\n * after `d` is `,` and it is decimal part delimiter\n * after `D` is `2` and it is how many decimal number is used\n */\n static Format(amount: number, format = '(h.)(d,)(D2)') {\n if (typeof amount !== 'number') {\n return '';\n }\n const f = this.ParseFormat(format);\n const parts = amount.toFixed(f.D).split(/[.,]/);\n return (\n parts[0]\n .split('')\n .reverse()\n .reduce((a, b, i) => (i % 3 ? b : b + f.h) + a) + (f.D ? f.d + parts[1] : '')\n );\n }\n\n private static ParseFormat(format: string) {\n const f = { D: 2, d: ',', h: ' ' };\n format.split(/[()]/).forEach((n) => {\n switch (n[0]) {\n case 'D':\n f.D = Math.max(parseInt(n.substr(1), 10), 0);\n break; // numbers after dot\n case 'd':\n f.d = n.substr(1) || f.d;\n break; // number delimiter('.' or ',')\n case 'h':\n f.h = n.substr(1) || f.h;\n break; // large number parts delimiter: 1000000 => 1 000 000\n default:\n }\n });\n return f;\n }\n\n transform(value: number | string | null | undefined, format?: string) {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === 'string') {\n value = parseFloat(value.replace(',', '.'));\n }\n return NumberPipe.Format(value, format);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ApplicationStateService } from 'src/app/core';\nimport { NumberPipe } from './number.pipe';\n\n@Pipe({ name: 'price' })\nexport class PricePipe implements PipeTransform {\n constructor(private applicationState: ApplicationStateService) {}\n\n async transform(value: number | string | null | undefined) {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === 'string') {\n value = parseFloat(value.replace(',', '.'));\n }\n return `${NumberPipe.Format(value)} ${this.applicationState.HotelCurrency}`;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\n\nimport { TranslationModule } from 'src/app/modules/translation';\n\nimport { CalendarInputComponent } from './components/calendar-input/calendar-input.component';\nimport { CalendarComponent } from './components/calendar/calendar.component';\nimport { CheckboxComponent } from './components/checkbox/checkbox.component';\nimport { DropdownComponent } from './components/dropdown/dropdown.component';\nimport { ExpandableMediaListComponent } from './components/expandable-media-list/expandable-media-list.component';\nimport { PopupComponent } from './components/popup/popup.component';\nimport { SlideDownComponent } from './components/animation/slide-down/slide-down.component';\n\nimport { CharPipe, DatePipe, GuestsPipe, NumberPipe, PricePipe } from './pipes';\n\nimport {\n EqualToValidatorDirective,\n HasLowerValidatorDirective,\n HasNumberValidatorDirective,\n HasUpperValidatorDirective,\n} from './validators';\n\nimport { MaxHeightDirective } from './directives/max-height.directive';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ReactiveFormsModule, HttpClientModule, RouterModule, TranslationModule],\n declarations: [\n GuestsPipe,\n DatePipe,\n CharPipe,\n NumberPipe,\n PricePipe,\n CalendarComponent,\n CheckboxComponent,\n DropdownComponent,\n CalendarInputComponent,\n ExpandableMediaListComponent,\n PopupComponent,\n EqualToValidatorDirective,\n HasLowerValidatorDirective,\n HasUpperValidatorDirective,\n HasNumberValidatorDirective,\n MaxHeightDirective,\n SlideDownComponent,\n ],\n exports: [\n GuestsPipe,\n DatePipe,\n CharPipe,\n NumberPipe,\n PricePipe,\n CalendarComponent,\n CheckboxComponent,\n DropdownComponent,\n CalendarInputComponent,\n ExpandableMediaListComponent,\n PopupComponent,\n EqualToValidatorDirective,\n HasLowerValidatorDirective,\n HasUpperValidatorDirective,\n HasNumberValidatorDirective,\n MaxHeightDirective,\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n HttpClientModule,\n RouterModule,\n TranslationModule,\n SlideDownComponent,\n ],\n})\nexport class SharedModule {}\n","import { Directive, Input, OnDestroy } from '@angular/core';\nimport { AbstractControl, NG_VALIDATORS, Validator, ValidatorFn } from '@angular/forms';\nimport { Subscription } from 'rxjs';\n\nexport const equalToValidator = (value: AbstractControl | undefined): ValidatorFn => {\n const equalToControl: AbstractControl | undefined = value;\n return (control: AbstractControl) => {\n if (equalToControl) {\n const appEqualTo = equalToControl.value === control.value;\n return appEqualTo ? null : { appEqualTo: { value: equalToControl.value } };\n }\n return { appEqualTo: { value: undefined } };\n };\n};\n\n@Directive({\n selector: '[appEqualTo]',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: EqualToValidatorDirective,\n multi: true,\n },\n ],\n})\nexport class EqualToValidatorDirective implements Validator, OnDestroy {\n private subscription: Subscription | undefined;\n private equalToControl: AbstractControl | undefined;\n private currentControl: AbstractControl | undefined;\n\n @Input() set appEqualTo(equalToControl: AbstractControl | undefined) {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n if (equalToControl) {\n this.subscription = equalToControl.valueChanges.subscribe(() => {\n if (this.currentControl) {\n this.currentControl.updateValueAndValidity();\n }\n });\n }\n this.equalToControl = equalToControl;\n }\n\n validate(control: AbstractControl) {\n this.currentControl = control;\n return equalToValidator(this.equalToControl)(control);\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n","import { Directive } from '@angular/core';\nimport { AbstractControl, NG_VALIDATORS, Validator, ValidatorFn } from '@angular/forms';\n\nexport const hasLowerValidator = (): ValidatorFn => (control: AbstractControl) => {\n const appHasLower = /[a-z]/.test(control.value);\n return appHasLower ? null : { appHasLower: { value: control.value } };\n};\n\n@Directive({\n selector: '[appHasLower]',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: HasLowerValidatorDirective,\n multi: true,\n },\n ],\n})\nexport class HasLowerValidatorDirective implements Validator {\n validate(control: AbstractControl) {\n return hasLowerValidator()(control);\n }\n}\n","import { Directive } from '@angular/core';\nimport { AbstractControl, NG_VALIDATORS, Validator, ValidatorFn } from '@angular/forms';\n\nexport const hasNumberValidator = (): ValidatorFn => (control: AbstractControl) => {\n const appHasNumber = /[0-9]/.test(control.value);\n return appHasNumber ? null : { appHasNumber: { value: control.value } };\n};\n\n@Directive({\n selector: '[appHasNumber]',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: HasNumberValidatorDirective,\n multi: true,\n },\n ],\n})\nexport class HasNumberValidatorDirective implements Validator {\n validate(control: AbstractControl) {\n return hasNumberValidator()(control);\n }\n}\n","import { Directive } from '@angular/core';\nimport { AbstractControl, NG_VALIDATORS, Validator, ValidatorFn } from '@angular/forms';\n\nexport const hasUpperValidator = (): ValidatorFn => (control: AbstractControl) => {\n const appHasUpper = /[A-Z]/.test(control.value);\n return appHasUpper ? null : { appHasUpper: { value: control.value } };\n};\n\n@Directive({\n selector: '[appHasUpper]',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: HasUpperValidatorDirective,\n multi: true,\n },\n ],\n})\nexport class HasUpperValidatorDirective implements Validator {\n validate(control: AbstractControl) {\n return hasUpperValidator()(control);\n }\n}\n","export * from './equal-to-validator.directive';\nexport * from './has-lower-validator.directive';\nexport * from './has-upper-validator.directive';\nexport * from './has-number-validator.directive';\n","import packageInfo from '../../package.json';\n\nexport const environment = {\n production: true,\n version: packageInfo.version,\n configUrl: '/confighandler.ashx',\n testBaseUrl: '',\n};\n","import { messages } from './base';\n\nexport enum Locale {\n GB = 'en-GB',\n DK = 'da-DK',\n SE = 'sv-SE',\n DE = 'de-DE',\n NO = 'nn-NO',\n FO = 'fo-FO',\n GL = 'kl-GL',\n IS = 'is-IS',\n}\n\nexport const SupportedLocales = [\n Locale.GB,\n Locale.DK,\n Locale.SE,\n Locale.DE,\n Locale.NO,\n Locale.FO,\n Locale.GL,\n Locale.IS,\n];\n\nconst IsoLocaleMap: { [K in Locale]: { locale: string } } = {\n [Locale.GB]: { locale: 'en-gb' },\n [Locale.DK]: { locale: 'da' },\n [Locale.SE]: { locale: 'sv' },\n [Locale.DE]: { locale: 'de' },\n [Locale.NO]: { locale: 'nb' },\n [Locale.FO]: { locale: 'da' },\n [Locale.GL]: { locale: 'da' },\n [Locale.IS]: { locale: 'is' },\n};\n\nexport const getIsoFromLocale = (locale: Locale) => {\n return IsoLocaleMap[locale].locale;\n};\n\nexport type Messages = typeof messages;\nexport type Message = keyof Messages;\n","import { Messages } from './index';\r\n\r\nexport const messages: Messages = {\r\n APA_CompanyLogin: `Firma login`,\r\n APA_Logout: `Log ud`,\r\n APA_Welcome: `Velkommen`,\r\n APA_ShowPromo: `Rabatkode`,\r\n APA_PromoLabel: `Indtast rabatkode`,\r\n APA_Promo: `Rabatkode`,\r\n APA_PromoSubmit: `Benyt`,\r\n APA_PromoChange: `ændre`,\r\n APA_ActivateHead: `Aktiver dit login`,\r\n APA_ActivateDesc: `Angiv adgangskode for at aktivere login for`,\r\n APA_Password: `Adgangskode`,\r\n APA_ConfirmPassword: `Bekræft adgangskode`,\r\n APA_PasswordHasUpper: `Adgangskode skal indeholde mindst et stort bogstav (A-Z)`,\r\n APA_PasswordHasLower: `Adgangskode skal indeholde mindst et lille bogstav (a-z)`,\r\n APA_PasswordHasNumber: `Adgangskode skal indeholde mindst et tal (0-9)`,\r\n APA_PasswordLength8: `Adgangskode skal indeholde mindst 8 karakterer`,\r\n APA_ConfirmPasswordEqualTo: `Forkert adgangskode`,\r\n APA_Activate: `Aktiver`,\r\n APA_CustomerNotFound: `Kunde ikke fundet`,\r\n APA_ResetBasket: `Alt vil blive fjernet fra kurven. Er du sikker?`,\r\n APA_Address: `Adresse`,\r\n APA_Contact: `Kontakt`,\r\n APA_VatNumber: `CVR:`,\r\n APA_PromoMessageStart: `Kampagne koden`,\r\n APA_ValidTime: `Gyldigheds periode`,\r\n APA_PromoMessageEnd: `Koden er gyldig på de produkter der er markeret med en procentvis rabat`,\r\n APA_AQCDecription: `Aldersbeskrivelse`,\r\n APA_Year: `år`,\r\n APA_Book: `Book`,\r\n\r\n CPA_NothingAvailable_EmptyText: `Vælg venligst en ny dato herunder, eller gå tilbage og ændre dine oplysninger fra første step`,\r\n CPA_NothingAvailable: `Der er ingen ledige værelser, der opfylder dine kriterier`,\r\n CPA_SoldOut: `Udsolgt`,\r\n CPA_CustomerInvalid: `Ukendt kundeprofil`,\r\n CPA_PromoInvalid: `Den indtastede rabatkode er ugyldig.`,\r\n CPA_PromoBetween: `Den indtastede rabatkode er kun gyldig hvis opholdet er i perioden:`,\r\n\r\n RPA_More: `Se mere`,\r\n RPA_Select: `Vælg`,\r\n RPA_Selected: `Valgt`,\r\n RPA_From: `Starter fra`,\r\n RPA_Image: `Intet billede`,\r\n RPA_Description: `Beskrivelse`,\r\n RPA_ChooseRoom: `Vælg værelse`,\r\n RPA_ChoosePackage: `Vælg ophold`,\r\n RPA_ChooseCabin: `Vælg Hytte`,\r\n RPA_ChooseHouse: `Vælg Hus`,\r\n RPA_ChooseUnit: `Vælg enhed`,\r\n RPA_BackRate: `Vælg en anden pakke`,\r\n RPA_MaxPersons: `Maks antal personer`,\r\n RPA_ChooseYourRoom: `Vælg værelse`,\r\n RPA_ChooseYourCabin: `Vælg hytte`,\r\n RPA_ChooseYourHouse: `Vælg hus`,\r\n RPA_ChooseYourUnit: `Vælg enhed`,\r\n RPA_ChooseYourPackage: `Vælg ophold`,\r\n\r\n APA_Services: `Ekstra tilkøb`,\r\n APA_Add: `Tilføj`,\r\n APA_Added: `Tilføjet`,\r\n APA_Remove: `Fjern`,\r\n APA_ContentDialog: `Vælg det antal personer og dage du ønsker den valgte service. Mellem datoerne`,\r\n APA_ChooseYourAddOns: `Vælg ekstra tilkøb`,\r\n APA_TotalPrice: `Samlet pris`,\r\n APA_TotalInBasket: `stk, i alt`,\r\n APA_TotalOf: `Vælg antal à`,\r\n\r\n CUP_Header: `Købers oplysninger`,\r\n CUP_Accept: `Accepter betingelser`,\r\n CUP_FName: `Fornavn`,\r\n CUP_FNameReq: `Fornavn skal oplyses`,\r\n CUP_FPhoneReq: `Mobil skal oplyses`,\r\n CUP_LName: `Efternavn`,\r\n CUP_LNameReq: `Efternavn skal oplyses`,\r\n CUP_Address: `Adresse`,\r\n CUP_AddressReq: `Adressen skal oplyses`,\r\n CUP_ZipCode: `Postnummer`,\r\n CUP_ZipCodeReq: `Postnr. skal oplyses`,\r\n CUP_City: `By`,\r\n CUP_CityReq: `By skal oplyses`,\r\n CUP_Contry: `Land`,\r\n CUP_ContryReq: `Land er påkrævet`,\r\n CUP_Phone: `Mobil`,\r\n CUP_PhoneReq: `Mobilnr. skal oplyses`,\r\n CUP_Email: `E-mail`,\r\n CUP_EmailRepeat: `Gentag E-mail`,\r\n CUP_EmailReq: `E-mail skal oplyses`,\r\n CUP_EmailInvalid: `E-mail er ikke korrekt`,\r\n CUP_Comment: `Kommentarer`,\r\n CUP_NeedSubscribe: `Jeg vil gerne modtage nyheder pr. e-mail.`,\r\n CUP_AcceptTerms: `Jeg har læst og accepterer betingelserne.`,\r\n CUP_BookNow: `Book`,\r\n CUP_CancelPolicyHeader: `Afbestillingsforsikring`,\r\n CUP_CancelPolicyDesc: `Du har mulighed for at annullere dit ophold hvis du skulle blive forhindret i at ankomme. Se yderligere oplysninger om vilkår for afbestillingsbeskyttelsen i vores betingelser.`,\r\n CUP_CancelPolicyLabel: `Ja, jeg vil gerne tilkøbe afbestillingsforsikring til`,\r\n CUP_GuestInfo: `Gæsteoplysninger`,\r\n CUP_BookingOverview: `Booking oversigt`,\r\n CUP_PayWithGiftcard: `For at betale med gavekort`,\r\n CUP_PayWithGiftcardClick: `Klik her`,\r\n CUP_PayWithGiftcardDescription: `Indtast koden fra dit gavekort`,\r\n CUP_PayWithGiftcardError: `Gavekort er ikke aktivt eller kunne ikke findes i systemet.`,\r\n CUP_PayWithGiftcardStatus: `Gavekort aktivt`,\r\n CUP_PayWithGiftcardDiscount: `Gavekort beløb`,\r\n CUP_PayWithGiftcardHeader: `Gavekort`,\r\n CUP_PayWithGiftcardInformation: `Vil du indløse et gavekort?`,\r\n CUP_PayWithGiftcardPlaceholder: `Gavekortskode`,\r\n CUP_PayWithGiftcardRedeem: `Indløs`,\r\n CUP_BookingOverviewToPay: `At betale`,\r\n\r\n PAL_GoToPayment: `Gå til betaling`,\r\n PAL_PaymentComplete: `Linket er udløbet. Kontakt venligst`,\r\n PAL_PaymentNotAvailable: `Betaling på denne reservation er ikke tilgængelig`,\r\n\r\n PAR_Payment: `Betaling`,\r\n PAR_SeekAuthorization: `Dine kreditkortoplysninger vil blive brugt som betaling, eller alternativt som sikkerhed for købet.`,\r\n PAR_TotalLabel: `Pris på din bestilling`,\r\n PAR_TotalPayLabel: `Pris at betale`,\r\n PAR_OBSLabel: `VIGTIGT: Luk ikke dette vindue, før kvitteringssiden vises, hvorpå du kan se dit ordre-/reservationsnummer!`,\r\n PAR_OBSLabelGiftcard: `OBS: Luk ikke dette vindue før kvitteringsside vises med et ordrenummer!`,\r\n PAR_FailedToPay: `Det lykkedes ikke at betale. Tjek dit kortnummer.`,\r\n PAR_CardInvalid: `Kortnummer er ikke gyldigt`,\r\n PAR_CardUnknown: `Korttype ikke kendt`,\r\n PAR_CardMonthInvalid: `Måned er ugyldig`,\r\n PAR_CardYearInvalid: `År er ugyldig`,\r\n PAR_CardCVCInvalid: `CVV-kode er ugyldig`,\r\n PAR_FieldRequired: `Skal udfyldes`,\r\n PAR_Cancel: `Annuller`,\r\n PAR_Pay: `Betal`,\r\n PAR_PaymentMethod: `Betalingsmetoder`,\r\n PAR_Cardnumber: `Kortnummer`,\r\n PAR_MonthPlaceholder: `MM`,\r\n PAR_YearPlaceholder: `ÅÅ`,\r\n\r\n PFP_Header: `Hov! Der er desværre sket en fejl`,\r\n PFP_Info: `Og din ordre er IKKE gået igennem. Prøv venligst igen ved at klikke på knappen herunder. Der er ikke blevet trukket penge på din konto.`,\r\n PFP_TryAgain: `Prøv igen`,\r\n\r\n REP_Header: `Tak for din bestilling,`,\r\n REP_Comment: `herunder finder du din kvittering for din ordre.`,\r\n REP_DateRooms: `Rejsedato`,\r\n REP_Return: `Tilbage til hjemmeside`,\r\n REP_OrderId: `Ordrenummer`,\r\n REP_ReservationId: `Ordrenummer`,\r\n REP_CustomerInfo: `Personlige oplysninger`,\r\n\r\n REP_Name: `Navn`,\r\n REP_PostCity: `Postnr & By`,\r\n REP_Phone: `Telefon`,\r\n REP_Address: `Adresse`,\r\n REP_Country: `Land`,\r\n REP_Email: `Email`,\r\n REP_Thanks: `Tak for din ordre`,\r\n REP_ThanksInfo: `Du vil modtage en bekræftelse indenfor kort tid på mail.`,\r\n REP_ThanksPayment: `Din betaling er gennemført`,\r\n\r\n LOA_Addons: `Henter ekstra ydelser`,\r\n LOA_CustomerInfo: `Henter kunde informationer`,\r\n LOA_ActivatingCustomer: `Aktiver kunde`,\r\n LOA_Translations: `Henter oversættelser`,\r\n LOA_Configuration: `Indlæser konfiguration`,\r\n LOA_Availability: `Henter ledighed`,\r\n LOA_CreatingReservation: `Opretter reservation`,\r\n LOA_HotelInformation: `Indlæser hotel information`,\r\n LOA_Countries: `Henter lande`,\r\n LOA_PreparingPaymnent: `Forbereder betaling`,\r\n LOA_ApplyingPromo: `Indlæser rabatkode`,\r\n LOA_Rooms: `Indlæser værelser`,\r\n LOA_Rates: `Indlæser priser`,\r\n LOA_LoggingIn: `Logger ind`,\r\n LOA_SendingInformation: `Sender information`,\r\n\r\n COM_Continue: `Fortsæt`,\r\n COM_OK: `OK`,\r\n COM_Persons: `Personer`,\r\n COM_Guest_10: `Voksne`,\r\n COM_Guest_9: `Teenagere`,\r\n COM_Guest_7: `Baby`,\r\n COM_Guest_11: `Seniorer`,\r\n COM_Guest_8: `Børn`,\r\n COM_Adult: `Voksen`,\r\n COM_Child: `Barn`,\r\n COM_Room: `Værelse`,\r\n COM_Cabin: `Hytte`,\r\n COM_House: `Hus`,\r\n COM_Unit: `Enhed`,\r\n COM_Arrival: `Ankomst`,\r\n COM_Departure: `Afrejse`,\r\n COM_Promocode: `Rabatkode`,\r\n COM_Rooms: `Værelser`,\r\n COM_AddOns: `Ekstra ydelser`,\r\n COM_TotalGuests: `Antal gæster`,\r\n COM_Price: `Pris`,\r\n COM_TotalPrice: `Pris total`,\r\n COM_TotalPriceWithTransactionId: `I alt betalt med transaktionsnr.`,\r\n COM_TotalReservedWithTransactionId: `I alt er reserveret med transactionId`,\r\n COM_Close: `Luk`,\r\n COM_Back: `Tilbage`,\r\n COM_Error: `Info`,\r\n COM_Info: `Information`,\r\n COM_Confirm: `Bekræft`,\r\n COM_Package: `Pakke`,\r\n COM_SoldOutError: `Der er ikke nogle ledige værelser eller pakker på denne dag`,\r\n COM_SearchNew: `Ny søgning`,\r\n COM_TableReservation: `Bord Reservation`,\r\n COM_TableNumberOfPersons: `Antal personer ved bordet`,\r\n COM_Guests: `Gæster`,\r\n COM_TableChooseProduct: `Vælg dato og produkt`,\r\n COM_TablePlaceGuests: `Du mangler at placere`,\r\n COM_TableChooseProducts: `Vælg produkt(er)`,\r\n COM_TableNumberOfGuestsForProduct: `Antal gæster til dette produkt`,\r\n COM_TableBookingFlowAddProduct: `Ønsker du at lave en bord reservation på dit ophold?`,\r\n COM_TableIfNotPressContinue: `Ellers tryk fortsæt`,\r\n COM_AddToBasket: `Læg i kurv`,\r\n COM_AddedToBasket: `Tilføjet til kurv`,\r\n COM_Type: `Type`,\r\n COM_SeatingSoldOut: `Der er ikke noget ledigt på nuværende tidspunkt`,\r\n COM_Main: `Startside`,\r\n COM_Conference: `Konference`,\r\n COM_Quantity: `Antal`,\r\n\r\n LFO_Email: `E-mail`,\r\n LFO_EmailRequried: `E-mail skal oplyses`,\r\n LFO_EmailInvalid: `E-mail er ikke korrekt`,\r\n LFO_Password: `Adgangskode`,\r\n LFO_PasswordRequried: `Adgangskode påkrævet`,\r\n LFO_ForgotPassword: `Kan du ikke tilgå din konto ?`,\r\n LFO_Login: `Log ind`,\r\n LFO_BackToLogin: `Tilbage til indlogning`,\r\n LFO_Send: `Send`,\r\n LFO_MessageSend: `Besked afsendt!`,\r\n LFO_LoginError: `Forkert e-mail eller adgangskode`,\r\n LFO_RecoveryError: `Loginoplysninger ugyldige`,\r\n\r\n SFO_ChooseHotel: `Vores hoteller`,\r\n SFO_ChooseHolidayResort: `Vores Feriecentere`,\r\n SFO_ChooseCenter: `Vores Centre`,\r\n SFO_ChooseDepartment: `Vælg Afdeling`,\r\n SFO_ParamsHeader: `Vælg rejsedato`,\r\n SFO_Guests: `Gæster i værelse`,\r\n SFO_GuestsCabin: `Gæster i Hytte`,\r\n SFO_GuestsHouse: `Gæster i Hus`,\r\n SFO_GuestsUnit: `Gæster i Enhed`,\r\n SFO_AddRoom: `Flere værelser`,\r\n SFO_AddCabin: `Flere hytter`,\r\n SFO_AddHouse: `Flere huse`,\r\n SFO_AddUnit: `Flere enheder`,\r\n SFO_BookStay: `ophold`,\r\n SFO_BookEvent: `Event`,\r\n SFO_BookTakeAway: `Take Away`,\r\n SFO_BookTableReservation: `Bord Reservation`,\r\n SFO_BookGiftcard: `Gavekort`,\r\n SFO_GiftcardMetaData: `Grunddata for dine gavekort`,\r\n SFO_ChooseGiftcard: `Vælg Gavekort`,\r\n SFO_NumberOfGiftcards: `Hvor mange af de valgte gavekort vil du købe?`,\r\n SFO_GiftcardAmount: `Indtast beløb`,\r\n SFO_GiftcardEnterDetails: `Udfyld detaljer for dine gavekort`,\r\n SFO_ChooseGiftcardDescription: `Køb et gavekort til en du holder af`,\r\n SFO_GiftcardDetails: `Gavekort detaljer`,\r\n SFO_GiftcardTo: `Hvem er gavekortet til (valgfrit)`,\r\n SFO_GiftcardFrom: `Hvem er gavekortet fra (valgfrit)`,\r\n SFO_GiftcardMessage: `Skriv en hilsen (Maks 100 tegn) (valgfrit)`,\r\n SFO_BookArrangement: `Arrangement`,\r\n SFO_BookConcert: `Koncert`,\r\n SFO_BookTableArangement: `Bord/Arrangement`,\r\n SFO_BookTableEvent: `Bord/Event`,\r\n SFO_BordTakeAway: `Bord/take away`,\r\n SFO_BookTicket: `Billet`,\r\n SFO_BookLecture: `Foredrag`,\r\n SFO_BookTable: `Bestil Bord`,\r\n SFO_BookSpa: `Spa`,\r\n SFO_BookExperience: `Oplevelse`,\r\n SFO_ChooseMonth: `Vælg Måned`,\r\n SFO_NoRooms: `Der blev ikke fundet nogle ledige værelser i det valgte tidsrum!`,\r\n SFO_MinLOS: `Den valgte periode kræver booking af minimum`,\r\n SFO_Nights: `nætter`,\r\n SFO_MaxLOS: `I den valgte periode er det maksimalt muligt at booke`,\r\n\r\n CAL_WeekStart: `1`,\r\n CAL_M01: `Januar`,\r\n CAL_M02: `Februar`,\r\n CAL_M03: `Marts`,\r\n CAL_M04: `April`,\r\n CAL_M05: `Maj`,\r\n CAL_M06: `Juni`,\r\n CAL_M07: `Juli`,\r\n CAL_M08: `August`,\r\n CAL_M09: `September`,\r\n CAL_M10: `Oktober`,\r\n CAL_M11: `November`,\r\n CAL_M12: `December`,\r\n CAL_D0: `Søndag`,\r\n CAL_D1: `Mandag`,\r\n CAL_D2: `Tirsdag`,\r\n CAL_D3: `Onsdag`,\r\n CAL_D4: `Torsdag`,\r\n CAL_D5: `Fredag`,\r\n CAL_D6: `Lørdag`,\r\n CAL_Selected: `Valgt`,\r\n CAL_Occupied: `Lukket/udsolgt`,\r\n CAL_Arrival: `Lukket for ankomst`,\r\n CAL_Departure: `Lukket for afrejse`,\r\n CAL_Mon: `M`,\r\n CAL_Tirs: `T`,\r\n CAL_Ons: `O`,\r\n CAL_Tors: `T`,\r\n CAL_Fre: `F`,\r\n CAL_Lor: `L`,\r\n CAL_Sun: `S`,\r\n CAL_Available: `Ledigt`,\r\n CAL_NotPossible: `Ikke muligt`,\r\n\r\n BIN_ChangeDate: `Ret dato`,\r\n BIN_ChangeRoom: `Ret`,\r\n BIN_ChangeAddOns: `Ændre ekstra ydelser`,\r\n BIN_NoAddOns: `Ingen ekstra ydelser tilføjet`,\r\n BIN_AddOns: `Ekstra ydelser tilføjet`,\r\n BIN_Reservation: `Din Reservation`,\r\n BIN_Details: `Basis Detaljer`,\r\n BIN_RoomCount: `Værelser`,\r\n BIN_CabinCount: `Hytter`,\r\n BIN_HouseCount: `Huse`,\r\n BIN_UnitCount: `Enheder`,\r\n BIN_Roomtype: `Værelsestype`,\r\n BIN_Cabintype: `Hytte type`,\r\n BIN_Housetype: `Hustype`,\r\n BIN_Unittype: `Enheds type`,\r\n BIN_Packagetype: `Pakketype`,\r\n BIN_BasketEmpty: `Kurven er tom`,\r\n BIN_BasketGoToCheckout: `Gå til kassen`,\r\n\r\n EXC_EmptyBasket: `Kurven må ikke være tom`,\r\n\r\n SEA_Date: `Dato`,\r\n SEA_Time: `Tid`,\r\n SEA_Quantity: `Antal`,\r\n SEA_Skip: `Spring over`,\r\n SEA_ChooseEvent: `Vælg en oplevelse`,\r\n SEA_DescriptionStart: `Vælg`,\r\n SEA_DescriptionEnd: `nedenfor eller dato i kalenderen`,\r\n SEA_SoldOut: `Alt er udsolgt for den valgte måned`,\r\n SEA_SoldOutContinue: `Tryk på Fortsæt for at springe over`,\r\n SEA_SeatingStandAloneTitle: `Vælg en dato eller en af de viste valgmuligheder`,\r\n SEA_ResetCalendar: `Vis alle`,\r\n\r\n MAT_CALENDAR_Calendar_Label: `S`,\r\n MAT_CALENDAR_Close_Calendar_Label: `S`,\r\n MAT_CALENDAR_End_Date_Label: `S`,\r\n MAT_CALENDAR_Next_Month_Label: `S`,\r\n MAT_CALENDAR_Next_Multi_Year_Label: `S`,\r\n MAT_CALENDAR_Next_Year_Label: `S`,\r\n MAT_CALENDAR_Open_Calendar_Label: `S`,\r\n MAT_CALENDAR_Prev_Month_Label: `S`,\r\n MAT_CALENDAR_Prev_Multi_Year_Label: `S`,\r\n MAT_CALENDAR_Prev_Year_Label: `S`,\r\n MAT_CALENDAR_Start_Date_Label: `S`,\r\n MAT_CALENDAR_Switch_To_Month_View_Label: `S`,\r\n MAT_CALENDAR_Switch_To_Multi_Year_View_Label: `S`,\r\n};\r\n","import { Messages } from './index';\r\n\r\nexport const messages: Messages = {\r\n APA_CompanyLogin: `Unternehmen Login`,\r\n APA_Logout: `Abmelden`,\r\n APA_Welcome: `Wilkommen`,\r\n APA_ShowPromo: `Aktionscode`,\r\n APA_PromoLabel: `Aktionscode eintragen`,\r\n APA_Promo: `Aktionscode`,\r\n APA_PromoSubmit: `Benutzen`,\r\n APA_PromoChange: `Veränderung`,\r\n APA_ActivateHead: `Aktivieren Sie Ihr Login`,\r\n APA_ActivateDesc: `Geben Sie das Passwort ein, um den Login zu aktivieren`,\r\n APA_Password: `Passwort`,\r\n APA_ConfirmPassword: `Passwort bestätigen`,\r\n APA_PasswordHasUpper: `Das Passwort muss mindestens einen Großbuchstaben enthalten (A-Z)`,\r\n APA_PasswordHasLower: `Passwort muss mindestens einen Kleinbuchstaben enthalten (a-z)`,\r\n APA_PasswordHasNumber: `Passwort muss mindestens eine Nummer enthalten (0-9)`,\r\n APA_PasswordLength8: `Das Passwort muss mindestens 8 Zeichen enthalten`,\r\n APA_ConfirmPasswordEqualTo: `Falsches Passwort`,\r\n APA_Activate: `Aktiveren`,\r\n APA_CustomerNotFound: `Kunde nicht verfügbar`,\r\n APA_ResetBasket: `Alles wird aus dem Warenkorb entfernt werden. Bist du sicher?`,\r\n APA_Address: `Adresse`,\r\n APA_Contact: `Kontakt`,\r\n APA_VatNumber: `CVR:`,\r\n APA_PromoMessageStart: `Kampagne Kode`,\r\n APA_ValidTime: `Gültigkeitsperiode`,\r\n APA_PromoMessageEnd: `Der Kode gilt für alle Produkte die mit einem prozentualen Rabatt markiert sind.`,\r\n APA_AQCDecription: `Altersbeschreibung`,\r\n APA_Year: `Jahre`,\r\n APA_Book: `Buchen`,\r\n\r\n CPA_NothingAvailable_EmptyText: `Bitte wählen Sie ein neues Datum unten, oder gehen Sie zurück und Ihre Informationen aus dem ersten Schritt ändern`,\r\n CPA_NothingAvailable: `Es gibt keine Zimmer, die Ihren Kriterien entsprechen`,\r\n CPA_SoldOut: `Ausverkauft`,\r\n CPA_CustomerInvalid: `Der Kunde ist nicht gültig`,\r\n CPA_PromoInvalid: `Aktionscode ist ungültig`,\r\n CPA_PromoBetween: `Der eingegebene Aktionscode ist nur gültig, wenn sich der Aufenthalt im diesem Zeitraum befindet:`,\r\n\r\n RPA_More: `Mehr`,\r\n RPA_Select: `Wählen`,\r\n RPA_Selected: `Ausgewählt`,\r\n RPA_From: `Beginnend ab`,\r\n RPA_Image: `Kein bild`,\r\n RPA_Description: `Beschreibung`,\r\n RPA_ChooseRoom: `Zimmer Wählen`,\r\n RPA_ChoosePackage: `Paket Wählen`,\r\n RPA_ChooseCabin: `Kabine Wählen`,\r\n RPA_ChooseHouse: `Haus Wählen`,\r\n RPA_ChooseUnit: `Einheit Wählen`,\r\n RPA_BackRate: `Wählen Sie ein anderes Paket`,\r\n RPA_MaxPersons: `Maximale Anzahl von Personen`,\r\n RPA_ChooseYourRoom: `Wählen Sie Ihr Zimmer`,\r\n RPA_ChooseYourCabin: `Wählen Sie Ihre Kabine`,\r\n RPA_ChooseYourHouse: `Wähle dein Haus`,\r\n RPA_ChooseYourUnit: `Wählen sie ihren Gerätetyp`,\r\n RPA_ChooseYourPackage: `Wählen Sie Ihr Paket`,\r\n\r\n APA_Services: `Dienstleistungen`,\r\n APA_Add: `Hinzufügen`,\r\n APA_Added: `Hinzugefügt`,\r\n APA_Remove: `Löschen`,\r\n APA_ContentDialog: `Wählen Sie die Anzahl der Personen und Tage aus an denen der Dienst ausgewählt werden soll. Zwischen den Daten`,\r\n APA_ChooseYourAddOns: `Wählen Sie Zusätzliche Leistungen`,\r\n APA_TotalPrice: `Gesamtkosten`,\r\n APA_TotalInBasket: `Stück, insgesamt`,\r\n APA_TotalOf: `Wählen Sie eine Menge von`,\r\n\r\n CUP_Header: `Gästedetails`,\r\n CUP_Accept: `Akzeptieren`,\r\n CUP_FName: `Vorname`,\r\n CUP_FNameReq: `Vorname ist erforderlich`,\r\n CUP_FPhoneReq: `Handynummer ist erforderlich`,\r\n CUP_LName: `Nachname`,\r\n CUP_LNameReq: `Nachname ist erforderlich`,\r\n CUP_Address: `Adresse`,\r\n CUP_AddressReq: `Adresse ist erforderlich`,\r\n CUP_ZipCode: `Postleitzahl`,\r\n CUP_ZipCodeReq: `PLZ erforderlich`,\r\n CUP_City: `Stadt`,\r\n CUP_CityReq: `Stadt ist erforderlich`,\r\n CUP_Contry: `Land`,\r\n CUP_ContryReq: `Land erforderlich`,\r\n CUP_Phone: `Handynummer`,\r\n CUP_PhoneReq: `Handynummer ist erforderlich`,\r\n CUP_Email: `E-mail`,\r\n CUP_EmailRepeat: `Wiederholen E-mail`,\r\n CUP_EmailReq: `Email ist erforderlich`,\r\n CUP_EmailInvalid: `E-Mail nicht gültig`,\r\n CUP_Comment: `Kommentar`,\r\n CUP_NeedSubscribe: `Newsletter abonnieren`,\r\n CUP_AcceptTerms: `Ich habe die Bedingungen gelesen und akzeptier`,\r\n CUP_BookNow: `Jetzt buchen`,\r\n CUP_CancelPolicyHeader: `Reiserücktrittsversicherung`,\r\n CUP_CancelPolicyDesc: `Sie haben die Möglichkeit Ihren Aufenthalt zu stornieren, wenn Sie es nicht machen können. Sehen Sie weitere Informationen in Bezug auf Rücktrittsversicherung in unseren Buchungsbedingungen.`,\r\n CUP_CancelPolicyLabel: `Ja, ich möchte Rücktrittsversicherung kaufen für`,\r\n CUP_GuestInfo: `Gästeinformation`,\r\n CUP_BookingOverview: `Buchungsübersicht`,\r\n CUP_PayWithGiftcard: `Mit Geschenkkarte bezahlen`,\r\n CUP_PayWithGiftcardClick: `Klicke hier`,\r\n CUP_PayWithGiftcardDescription: `Geben Sie Ihren Code von Ihrer Geschenkkarte ein`,\r\n CUP_PayWithGiftcardError: `Geschenkkarten sind nicht aktiv oder konnten nicht im System gefunden werden.`,\r\n CUP_PayWithGiftcardStatus: `Geschenkkarte aktiv`,\r\n CUP_PayWithGiftcardDiscount: `Geschenkkartenbetrag`,\r\n CUP_PayWithGiftcardHeader: `Geschenkkarte`,\r\n CUP_PayWithGiftcardInformation: `Sie möchten einen Geschenkgutschein einlösen?`,\r\n CUP_PayWithGiftcardPlaceholder: `Geschenkgutscheincode`,\r\n CUP_PayWithGiftcardRedeem: `Einlösen`,\r\n CUP_BookingOverviewToPay: `Bezahlen`,\r\n\r\n PAL_GoToPayment: `Zur Zahlung gehen`,\r\n PAL_PaymentComplete: `Der Link ist abgelaufen. Bitte kontaktieren`,\r\n PAL_PaymentNotAvailable: `Payment on this reservation is not available`,\r\n\r\n PAR_Payment: `Zahlung`,\r\n PAR_SeekAuthorization: `Ihre Kreditkartendaten werden als Zahlungsmittel, oder als Garantie für den Kauf verwendet.`,\r\n PAR_TotalLabel: `Preis für Ihre Bestellung`,\r\n PAR_TotalPayLabel: `Zu zahlender Preis`,\r\n PAR_OBSLabel: `WICHTIG: Schließen Sie dieses Fenster nicht, bis die Quittungsseite erscheint, auf der Sie Ihre Bestell- / Reservierungsnummer sehen können!`,\r\n PAR_OBSLabelGiftcard: `HINWEIS: Bleiben Sie auf der Seite bis die Quittungsseite mit einer bestellnummer angezeigt wird`,\r\n PAR_FailedToPay: `Fehlgeschlagen zu zahlen. Überprüfen Sie Ihre Kartennummer.`,\r\n PAR_CardInvalid: `Kartennummer ist ungültig`,\r\n PAR_CardUnknown: `Speicherkarten-Typ nicht bekannt`,\r\n PAR_CardMonthInvalid: `Monat ist ungültig`,\r\n PAR_CardYearInvalid: `Jahr ist ungültig`,\r\n PAR_CardCVCInvalid: `CVV-Code ist ungültig`,\r\n PAR_FieldRequired: `Dieses Feld wird benötigt`,\r\n PAR_Cancel: `Schliessen`,\r\n PAR_Pay: `Zahlen`,\r\n PAR_PaymentMethod: `Zahlungsmethode`,\r\n PAR_Cardnumber: `Kartennummer`,\r\n PAR_MonthPlaceholder: `MM`,\r\n PAR_YearPlaceholder: `JJ`,\r\n\r\n PFP_Header: `Huf! Leider ist ein Fehler aufgetreten`,\r\n PFP_Info: `Und Ihr Auftrag durch nicht gegangen. Bitte versuchen Sie es erneut, indem Sie den Button klicken. Kein Geld wurde von Ihrem Konto abgezogen.`,\r\n PFP_TryAgain: `Versuchen Sie es nochmal`,\r\n\r\n REP_Header: `Vielen Dank für Ihre Bestellung,`,\r\n REP_Comment: `Weiter unten finden Sie Ihre Quittung für Ihre Bestellung.`,\r\n REP_DateRooms: `Reisedatum`,\r\n REP_Return: `Zurück zur Website`,\r\n REP_OrderId: `Bestellnummer`,\r\n REP_ReservationId: `Bestellnummer`,\r\n REP_CustomerInfo: `Persönliche Angaben`,\r\n\r\n REP_Name: `Name`,\r\n REP_PostCity: `Postleitzahl Stadt`,\r\n REP_Phone: `Telefon`,\r\n REP_Address: `Adresse`,\r\n REP_Country: `Land`,\r\n REP_Email: `Email`,\r\n REP_Thanks: `Vielen Dank für Ihre Bestellung`,\r\n REP_ThanksInfo: `Innerhalb kurzer Zeit bekommen Sie einen Bestätigung auf Email.`,\r\n REP_ThanksPayment: `Unsere Zahlung ist abgeschlossen`,\r\n\r\n LOA_Addons: `Laden Add-ons`,\r\n LOA_CustomerInfo: `Laden Kundeninformationen`,\r\n LOA_ActivatingCustomer: `aktivieren Kunden`,\r\n LOA_Translations: `Laden Übersetzungen`,\r\n LOA_Configuration: `Laden Konfiguration`,\r\n LOA_Availability: `Laden Verfügbarkeit`,\r\n LOA_CreatingReservation: `Erstellen Reservierung`,\r\n LOA_HotelInformation: `Laden Hotelinformationen`,\r\n LOA_Countries: `Laden Länder`,\r\n LOA_PreparingPaymnent: `Vorbereitung Zahlung`,\r\n LOA_ApplyingPromo: `Anwenden von Promotion-Code`,\r\n LOA_Rooms: `Laden Zimmer`,\r\n LOA_Rates: `Loading Preise`,\r\n LOA_LoggingIn: `Einloggen`,\r\n LOA_SendingInformation: `Senden von Informationen`,\r\n\r\n COM_Continue: `Fortsetzen`,\r\n COM_OK: `OK`,\r\n COM_Persons: `Personen`,\r\n COM_Guest_10: `Erwachsene`,\r\n COM_Guest_9: `Teens`,\r\n COM_Guest_7: `Babys`,\r\n COM_Guest_11: `Senioren`,\r\n COM_Guest_8: `Kinder`,\r\n COM_Adult: `Erwachsene`,\r\n COM_Child: `Kind`,\r\n COM_Room: `Zimmer`,\r\n COM_Cabin: `Kabine`,\r\n COM_House: `Haus`,\r\n COM_Unit: `Einheit`,\r\n COM_Arrival: `Ankunft`,\r\n COM_Departure: `Abreise`,\r\n COM_Promocode: `Werbe-Code`,\r\n COM_Rooms: `Zimmer`,\r\n COM_AddOns: `Add-ons`,\r\n COM_TotalGuests: `Gäste insgesamt`,\r\n COM_Price: `Preis`,\r\n COM_TotalPrice: `Gesamtpreis`,\r\n COM_TotalPriceWithTransactionId: `Mit transactionID Insgesamt gezahlt`,\r\n COM_TotalReservedWithTransactionId: `Insgesamt reserviert mit transactionID`,\r\n COM_Close: `Schließen`,\r\n COM_Back: `Zurück`,\r\n COM_Error: `Info`,\r\n COM_Info: `Information`,\r\n COM_Confirm: `Bestätigen`,\r\n COM_Package: `Pakete`,\r\n COM_SoldOutError: `Für diesen Tag sind keine Zimmer oder Pakete verfügbar`,\r\n COM_SearchNew: `Neue Suche`,\r\n COM_TableReservation: `Tischreservierung`,\r\n COM_TableNumberOfPersons: `Anzahl der Personen am Tisch`,\r\n COM_Guests: `Gäste`,\r\n COM_TableChooseProduct: `Datum und Produkt auswählen`,\r\n COM_TablePlaceGuests: `Sie müssen platzieren`,\r\n COM_TableChooseProducts: `Produkt(e) auswählen`,\r\n COM_TableNumberOfGuestsForProduct: `Anzahl der Gäste für dieses Produkt`,\r\n COM_TableBookingFlowAddProduct: `Möchten Sie einen Tisch für Ihren Aufenthalt reservieren?`,\r\n COM_TableIfNotPressContinue: `Andernfalls drücken Sie Weiter`,\r\n COM_AddToBasket: `Anzeige in den Warenkorb`,\r\n COM_AddedToBasket: `In den Warenkorb gelegt`,\r\n COM_Type: `Art`,\r\n COM_SeatingSoldOut: `Momentan nichts verfügbar`,\r\n COM_Main: `Startseite`,\r\n COM_Conference: `Konference`,\r\n COM_Quantity: `Menge`,\r\n\r\n LFO_Email: `E-mail`,\r\n LFO_EmailRequried: `Email ist erforderlich`,\r\n LFO_EmailInvalid: `E-Mail nicht gültig`,\r\n LFO_Password: `Passwort`,\r\n LFO_PasswordRequried: `Passwort erforderlich`,\r\n LFO_ForgotPassword: `Können Sie Ihre Konto nicht angehen`,\r\n LFO_Login: `Einloggen`,\r\n LFO_BackToLogin: `Einloggen`,\r\n LFO_Send: `Senden`,\r\n LFO_MessageSend: `Nachrichten gesendet!`,\r\n LFO_LoginError: `Falsche E-Mail oder Passwort`,\r\n LFO_RecoveryError: `Login-Informationen ungültig`,\r\n\r\n SFO_ChooseHotel: `Unsere Hotels`,\r\n SFO_ChooseHolidayResort: `Unsere Feriensiedlung`,\r\n SFO_ChooseCenter: `Unsere Center`,\r\n SFO_ChooseDepartment: `Abteilung wählen`,\r\n SFO_ParamsHeader: `Datum Wähle`,\r\n SFO_Guests: `Gäste im Zimmer`,\r\n SFO_GuestsCabin: `Gäste im Kabine`,\r\n SFO_GuestsHouse: `Gäste im Haus`,\r\n SFO_GuestsUnit: `Gäste im einheit`,\r\n SFO_AddRoom: `Zimmer hinzufügen`,\r\n SFO_AddCabin: `Kabinen hinzufügen`,\r\n SFO_AddHouse: `Häuser hinzufügen`,\r\n SFO_AddUnit: `einheiten hinzufügen`,\r\n SFO_BookStay: `Aufenthalt`,\r\n SFO_BookEvent: `Event`,\r\n SFO_BookTakeAway: `Wegbringen`,\r\n SFO_BookTableReservation: `Tischreservierung`,\r\n SFO_BookGiftcard: `Geschenkkarte`,\r\n SFO_GiftcardMetaData: `Grunddaten für Ihre Geschenkkarten`,\r\n SFO_ChooseGiftcard: `Wählen Sie eine Geschenkkarte`,\r\n SFO_NumberOfGiftcards: `Wie viele der ausgewählten Geschenkkarten möchten Sie kaufen?`,\r\n SFO_GiftcardAmount: `Menge eingeben`,\r\n SFO_GiftcardEnterDetails: `Geben Sie Details für Ihre Geschenkkarten ein`,\r\n SFO_ChooseGiftcardDescription: `Kaufen Sie eine Geschenkkarte für jemanden den Sie interessieren`,\r\n SFO_GiftcardDetails: `Geschenkkartendetails`,\r\n SFO_GiftcardTo: `Für wen ist die Geschenkkarte (optional)`,\r\n SFO_GiftcardFrom: `Von wen ist die Geschenkkarte (optional)`,\r\n SFO_GiftcardMessage: `Schreiben Sie eine Begrüßung (max. 100 Zeichen) (optional)`,\r\n SFO_BookArrangement: `Anordnung`,\r\n SFO_BookConcert: `Konzert`,\r\n SFO_BookTableArangement: `Tisch / Anordnung`,\r\n SFO_BookTableEvent: `Tabelle / Ereignis`,\r\n SFO_BordTakeAway: `Bord / mitnehmen`,\r\n SFO_BookTicket: `Fahrkarte`,\r\n SFO_BookLecture: `Vorlesung`,\r\n SFO_BookTable: `Einen Tisch reservieren`,\r\n SFO_BookSpa: `Spa`,\r\n SFO_BookExperience: `Lebnis`,\r\n SFO_ChooseMonth: `Wählen Sie Monat`,\r\n SFO_NoRooms: `Für den ausgewählten Zeitraum wurden keine verfügbaren Zimmer gefunden!`,\r\n SFO_MinLOS: `Der ausgewählte Zeitraum erfordert eine Buchung von mindestens`,\r\n SFO_Nights: `nächte`,\r\n SFO_MaxLOS: `Während des ausgewählten Zeitraums ist eine Buchung maximal möglich`,\r\n\r\n CAL_WeekStart: `1`,\r\n CAL_M01: `Januar`,\r\n CAL_M02: `Februar`,\r\n CAL_M03: `März`,\r\n CAL_M04: `April`,\r\n CAL_M05: `Mai`,\r\n CAL_M06: `Juni`,\r\n CAL_M07: `Juli`,\r\n CAL_M08: `August`,\r\n CAL_M09: `September`,\r\n CAL_M10: `Oktober`,\r\n CAL_M11: `November`,\r\n CAL_M12: `Dezember`,\r\n CAL_D0: `Sonntag`,\r\n CAL_D1: `Montag`,\r\n CAL_D2: `Dienstag`,\r\n CAL_D3: `Mittwoch`,\r\n CAL_D4: `Donnerstag`,\r\n CAL_D5: `Freitag`,\r\n CAL_D6: `Samstag`,\r\n CAL_Selected: `Ausgewählt`,\r\n CAL_Occupied: `Geschlossen/Ausverkauft`,\r\n CAL_Arrival: `wegen Ankunft geschlossen`,\r\n CAL_Departure: `wegen Abreise geschlossen`,\r\n CAL_Mon: `M`,\r\n CAL_Tirs: `D`,\r\n CAL_Ons: `M`,\r\n CAL_Tors: `D`,\r\n CAL_Fre: `F`,\r\n CAL_Lor: `S`,\r\n CAL_Sun: `S`,\r\n CAL_Available: `Verfügbar`,\r\n CAL_NotPossible: `Nicht möglich`,\r\n\r\n BIN_ChangeDate: `Datum ändern`,\r\n BIN_ChangeRoom: `Ändern`,\r\n BIN_ChangeAddOns: `Ändern Sie Add-ons`,\r\n BIN_NoAddOns: `Keine Dienste hinzugefügt`,\r\n BIN_AddOns: `Dienstleistungen hinzugefügt`,\r\n BIN_Reservation: `Deine Reservierung`,\r\n BIN_Details: `Grundlegende Details`,\r\n BIN_RoomCount: `Räume`,\r\n BIN_CabinCount: `Kabinen`,\r\n BIN_HouseCount: `Hâuser`,\r\n BIN_UnitCount: `Einheiten`,\r\n BIN_Roomtype: `Zimmertyp`,\r\n BIN_Cabintype: `Kabinentyp`,\r\n BIN_Housetype: `Art eines Hauses`,\r\n BIN_Unittype: `Gerätetyp`,\r\n BIN_Packagetype: `Pakettyp`,\r\n BIN_BasketEmpty: `Der Korb ist leer`,\r\n BIN_BasketGoToCheckout: `Zum Checkout gehen`,\r\n\r\n EXC_EmptyBasket: `Basket must not be empty`,\r\n\r\n SEA_Date: `datum`,\r\n SEA_Time: `Zeit`,\r\n SEA_Quantity: `Anzahl`,\r\n SEA_Skip: `Überspringen`,\r\n SEA_ChooseEvent: `Wähle eine Erfahrung`,\r\n SEA_DescriptionStart: `Wählen`,\r\n SEA_DescriptionEnd: `unten oder Datum im Kalender`,\r\n SEA_SoldOut: `Für den ausgewählten Monat ist alles ausverkauft`,\r\n SEA_SoldOutContinue: `Drücken Sie Weiter um zu überspringen`,\r\n SEA_SeatingStandAloneTitle: ` Wählen Sie ein Datum oder eines der angezeigten aus Optionen`,\r\n SEA_ResetCalendar: `Anzeigen alle`,\r\n\r\n MAT_CALENDAR_Calendar_Label: `S`,\r\n MAT_CALENDAR_Close_Calendar_Label: `S`,\r\n MAT_CALENDAR_End_Date_Label: `S`,\r\n MAT_CALENDAR_Next_Month_Label: `S`,\r\n MAT_CALENDAR_Next_Multi_Year_Label: `S`,\r\n MAT_CALENDAR_Next_Year_Label: `S`,\r\n MAT_CALENDAR_Open_Calendar_Label: `S`,\r\n MAT_CALENDAR_Prev_Month_Label: `S`,\r\n MAT_CALENDAR_Prev_Multi_Year_Label: `S`,\r\n MAT_CALENDAR_Prev_Year_Label: `S`,\r\n MAT_CALENDAR_Start_Date_Label: `S`,\r\n MAT_CALENDAR_Switch_To_Month_View_Label: `S`,\r\n MAT_CALENDAR_Switch_To_Multi_Year_View_Label: `S`,\r\n};\r\n","import { Messages } from './index';\r\n\r\nexport const messages: Messages = {\r\n APA_CompanyLogin: `Company login`,\r\n APA_Logout: `Log out`,\r\n APA_Welcome: `Hello`,\r\n APA_ShowPromo: `Promotion code`,\r\n APA_PromoLabel: `Enter promotion code`,\r\n APA_Promo: `Promotion code`,\r\n APA_PromoSubmit: `Use`,\r\n APA_PromoChange: `change`,\r\n APA_ActivateHead: `Activate your login`,\r\n APA_ActivateDesc: `Type in password to activate login for`,\r\n APA_Password: `Password`,\r\n APA_ConfirmPassword: `Confirm Password`,\r\n APA_PasswordHasUpper: `Password must contain at least one uppercase letter (A-Z)`,\r\n APA_PasswordHasLower: `Password must contain at least one lowercase letter (a-z)`,\r\n APA_PasswordHasNumber: `Password must contain at least one number (0-9)`,\r\n APA_PasswordLength8: `Password must contain at least 8 characters`,\r\n APA_ConfirmPasswordEqualTo: `Passwords not match`,\r\n APA_Activate: `Activate`,\r\n APA_CustomerNotFound: `Sorry we can not find customer record in out database`,\r\n APA_ResetBasket: `Everything will be removed from basket. Are you sure?`,\r\n APA_Address: `Address`,\r\n APA_Contact: `Contact`,\r\n APA_VatNumber: `VAT:`,\r\n APA_PromoMessageStart: `Promotioncode`,\r\n APA_ValidTime: `Validity`,\r\n APA_PromoMessageEnd: `Promotioncode is valid on products marked with the code`,\r\n APA_AQCDecription: `Age description`,\r\n APA_Year: `years`,\r\n APA_Book: `Book`,\r\n\r\n CPA_NothingAvailable_EmptyText: `Please select a new date below, or go back and change your information from the first step`,\r\n CPA_NothingAvailable: `There are no available rooms which satisfy your criteria`,\r\n CPA_SoldOut: `Sold out`,\r\n CPA_CustomerInvalid: `Customer is not valid`,\r\n CPA_PromoInvalid: `The promotion code you entered is invalid.`,\r\n CPA_PromoBetween: `The promotion code you entered is only valid if your stay period is between:`,\r\n\r\n RPA_More: `Show more`,\r\n RPA_Select: `Select`,\r\n RPA_Selected: `Selected`,\r\n RPA_From: `Starting from`,\r\n RPA_Image: `No image`,\r\n RPA_Description: `Description`,\r\n RPA_ChooseRoom: `Choose room`,\r\n RPA_ChoosePackage: `Choose Package`,\r\n RPA_ChooseCabin: `Choose cabin`,\r\n RPA_ChooseHouse: `Choose house`,\r\n RPA_ChooseUnit: `Choose unit`,\r\n RPA_BackRate: `Choose another package`,\r\n RPA_MaxPersons: `Maximum number of people`,\r\n RPA_ChooseYourRoom: `Choose room`,\r\n RPA_ChooseYourCabin: `Choose cabin`,\r\n RPA_ChooseYourHouse: `Choose house`,\r\n RPA_ChooseYourUnit: `Choose unit`,\r\n RPA_ChooseYourPackage: `Choose package`,\r\n\r\n APA_Services: `Services`,\r\n APA_Add: `Add`,\r\n APA_Added: `Added`,\r\n APA_Remove: `Remove`,\r\n APA_ContentDialog: `Choose the number of guests and days you want the selected service. Between the dates`,\r\n APA_ChooseYourAddOns: `Choose add-ons`,\r\n APA_TotalPrice: `Total cost`,\r\n APA_TotalInBasket: `pc, total`,\r\n APA_TotalOf: `Choose quantity of`,\r\n\r\n CUP_Header: `Buyers informations`,\r\n CUP_Accept: `Accept`,\r\n CUP_FName: `Name`,\r\n CUP_FNameReq: `First name is required`,\r\n CUP_FPhoneReq: `Phone name is required`,\r\n CUP_LName: `Surname`,\r\n CUP_LNameReq: `Last name is required`,\r\n CUP_Address: `Address`,\r\n CUP_AddressReq: `Address is required`,\r\n CUP_ZipCode: `Postal code`,\r\n CUP_ZipCodeReq: `Postal code is required`,\r\n CUP_City: `City`,\r\n CUP_CityReq: `City is required`,\r\n CUP_Contry: `Country`,\r\n CUP_ContryReq: `Country is required`,\r\n CUP_Phone: `Mobile phone number`,\r\n CUP_PhoneReq: `Mobile phone is required`,\r\n CUP_Email: `Email`,\r\n CUP_EmailRepeat: `Repeat Email`,\r\n CUP_EmailReq: `Email is required`,\r\n CUP_EmailInvalid: `Email is not valid`,\r\n CUP_Comment: `Comment`,\r\n CUP_NeedSubscribe: `Subscribe to newsletter`,\r\n CUP_AcceptTerms: `Terms and Conditions`,\r\n CUP_BookNow: `Book now!`,\r\n CUP_CancelPolicyHeader: `Cancellation insurance`,\r\n CUP_CancelPolicyDesc: `You have the option to cancel your stay if you can't make it. See additional information regarding cancellation insurance in our booking conditions.`,\r\n CUP_CancelPolicyLabel: `Yes, I would like to buy cancellation insurance for`,\r\n CUP_GuestInfo: `Guest information`,\r\n CUP_BookingOverview: `Booking overview`,\r\n CUP_PayWithGiftcard: `To pay with gift card`,\r\n CUP_PayWithGiftcardClick: `Click here`,\r\n CUP_PayWithGiftcardDescription: `Enter the code from your giftcard`,\r\n CUP_PayWithGiftcardError: `Gift card is not active or dosen't exists.`,\r\n CUP_PayWithGiftcardStatus: `Gift card active`,\r\n CUP_PayWithGiftcardDiscount: `Gift card amount`,\r\n CUP_PayWithGiftcardHeader: `Gift card`,\r\n CUP_PayWithGiftcardInformation: `Want to use a gift card?`,\r\n CUP_PayWithGiftcardPlaceholder: `Gift card code`,\r\n CUP_PayWithGiftcardRedeem: `Use`,\r\n CUP_BookingOverviewToPay: `To pay`,\r\n\r\n PAL_GoToPayment: `Go to payment`,\r\n PAL_PaymentComplete: `The link has expired. Please contact`,\r\n PAL_PaymentNotAvailable: `Payment on this reservation is not available`,\r\n\r\n PAR_Payment: `Payment`,\r\n PAR_SeekAuthorization: `Please fill in your credit card information below in order to confirm your payment and complete your reservation`,\r\n PAR_TotalLabel: `Price for your order`,\r\n PAR_TotalPayLabel: `Price to pay`,\r\n PAR_OBSLabel: `IMPORTANT: Do not close this window until the receipt page appears, where you can see your order / reservation number!`,\r\n PAR_OBSLabelGiftcard: `IMPORTANT: Stay on the page until receipt appears with a order number!`,\r\n PAR_FailedToPay: `Failed to pay. Check your card number.`,\r\n PAR_CardInvalid: `Card number is not valid`,\r\n PAR_CardUnknown: `Card type in not known`,\r\n PAR_CardMonthInvalid: `Month is invalid`,\r\n PAR_CardYearInvalid: `Year is invalid`,\r\n PAR_CardCVCInvalid: `CVV code is invalid`,\r\n PAR_FieldRequired: `This field is required`,\r\n PAR_Cancel: `Cancel`,\r\n PAR_Pay: `Pay`,\r\n PAR_PaymentMethod: `Payment Methods`,\r\n PAR_Cardnumber: `Card number`,\r\n PAR_MonthPlaceholder: `MM`,\r\n PAR_YearPlaceholder: `YY`,\r\n\r\n PFP_Header: `Hoof! Unfortunately an error has occurred`,\r\n PFP_Info: `And your order has NOT gone through. Please try again by clicking the button below. No money has been withdrawn from your account.`,\r\n PFP_TryAgain: `Try again`,\r\n\r\n REP_Header: `Thank you for your order,`,\r\n REP_Comment: `below you will find your receipt for your order.`,\r\n REP_DateRooms: `Travel date`,\r\n REP_Return: `Return to website`,\r\n REP_OrderId: `Your Order Number`,\r\n REP_ReservationId: `Order number`,\r\n REP_CustomerInfo: `Personal information`,\r\n\r\n REP_Name: `Name`,\r\n REP_PostCity: `ZipCode & City`,\r\n REP_Phone: `Phone`,\r\n REP_Address: `Address`,\r\n REP_Country: `Country`,\r\n REP_Email: `Email`,\r\n REP_Thanks: `Thank you for your order`,\r\n REP_ThanksInfo: `You will receive a confirmation shortly by mail.`,\r\n REP_ThanksPayment: `Your payment is complete`,\r\n\r\n LOA_Addons: `Loading add-ons`,\r\n LOA_CustomerInfo: `Loading customer information`,\r\n LOA_ActivatingCustomer: `Activating customer`,\r\n LOA_Translations: `Loading translations`,\r\n LOA_Configuration: `Loading configuration`,\r\n LOA_Availability: `Loading availability`,\r\n LOA_CreatingReservation: `Creating reservation`,\r\n LOA_HotelInformation: `Loading hotel information`,\r\n LOA_Countries: `Loading countries`,\r\n LOA_PreparingPaymnent: `Preparing payment`,\r\n LOA_ApplyingPromo: `Applying promotion code`,\r\n LOA_Rooms: `Loading rooms`,\r\n LOA_Rates: `Loading rates`,\r\n LOA_LoggingIn: `Logging in`,\r\n LOA_SendingInformation: `Sending information`,\r\n\r\n COM_Continue: `Continue`,\r\n COM_OK: `OK`,\r\n COM_Persons: `Persons`,\r\n COM_Guest_10: `Adults`,\r\n COM_Guest_9: `Teenagers`,\r\n COM_Guest_7: `Infants`,\r\n COM_Guest_11: `Seniors`,\r\n COM_Guest_8: `Children`,\r\n COM_Adult: `Adult`,\r\n COM_Child: `Child`,\r\n COM_Room: `Room`,\r\n COM_Cabin: `Cabin`,\r\n COM_House: `House`,\r\n COM_Unit: `Unit`,\r\n COM_Arrival: `Arrival`,\r\n COM_Departure: `Departure`,\r\n COM_Promocode: `Promocode`,\r\n COM_Rooms: `Rooms`,\r\n COM_AddOns: `Add-ons`,\r\n COM_TotalGuests: `Total guests`,\r\n COM_Price: `Price`,\r\n COM_TotalPrice: `Total price`,\r\n COM_TotalPriceWithTransactionId: `Total paid with transactionID`,\r\n COM_TotalReservedWithTransactionId: `Total reserved with transactionID`,\r\n COM_Close: `Close`,\r\n COM_Back: `Back`,\r\n COM_Error: `Info`,\r\n COM_Info: `Information`,\r\n COM_Confirm: `Confirm`,\r\n COM_Package: `Package`,\r\n COM_SoldOutError: `There is no available rooms or packages on this date`,\r\n COM_SearchNew: `New Search`,\r\n COM_TableReservation: `Table Reservation`,\r\n COM_TableNumberOfPersons: `Number of people at the table`,\r\n COM_Guests: `Guests`,\r\n COM_TableChooseProduct: `Choose date and products`,\r\n COM_TablePlaceGuests: `You need to place`,\r\n COM_TableChooseProducts: `Choose product(s)`,\r\n COM_TableNumberOfGuestsForProduct: `Number of guests for this products`,\r\n COM_TableBookingFlowAddProduct: `Do you wish to add a table reservation to your stay?`,\r\n COM_TableIfNotPressContinue: `If not press continue`,\r\n COM_AddToBasket: `Add to basket`,\r\n COM_AddedToBasket: `Added to basket`,\r\n COM_Type: `Type`,\r\n COM_SeatingSoldOut: `Nothing available at the moment`,\r\n COM_Main: `Home`,\r\n COM_Conference: `Conference`,\r\n COM_Quantity: `Quantity`,\r\n\r\n LFO_Email: `Email`,\r\n LFO_EmailRequried: `Email is required`,\r\n LFO_EmailInvalid: `Email is not valid`,\r\n LFO_Password: `Password`,\r\n LFO_PasswordRequried: `Password required`,\r\n LFO_ForgotPassword: `Can't access your account?`,\r\n LFO_Login: `Log in`,\r\n LFO_BackToLogin: `Back to Sign in`,\r\n LFO_Send: `Send`,\r\n LFO_MessageSend: `Message send!`,\r\n LFO_LoginError: `Wrong email or password`,\r\n LFO_RecoveryError: `Login information invalid`,\r\n\r\n SFO_ChooseHotel: `Our hotels`,\r\n SFO_ChooseHolidayResort: `Our Holiday Resorts`,\r\n SFO_ChooseCenter: `Our Centers`,\r\n SFO_ChooseDepartment: `Choose Department`,\r\n SFO_ParamsHeader: `Select date`,\r\n SFO_Guests: `Guests in room`,\r\n SFO_GuestsCabin: `Guests in Cabin`,\r\n SFO_GuestsHouse: `Guests in House`,\r\n SFO_GuestsUnit: `Guests in Unit`,\r\n SFO_AddRoom: `More rooms`,\r\n SFO_AddCabin: `More cabins`,\r\n SFO_AddHouse: `More houses`,\r\n SFO_AddUnit: `More units`,\r\n SFO_BookStay: `stay`,\r\n SFO_BookEvent: `Event`,\r\n SFO_BookTakeAway: `Take Away`,\r\n SFO_BookTableReservation: `Table Reservation`,\r\n SFO_BookGiftcard: `Giftcard`,\r\n SFO_GiftcardMetaData: `Meta data for your giftcard`,\r\n SFO_ChooseGiftcard: `Choose Giftcard`,\r\n SFO_NumberOfGiftcards: `How many of the selected giftcard do you want to buy?`,\r\n SFO_GiftcardAmount: `Enter amount`,\r\n SFO_GiftcardEnterDetails: `Enter details for you giftcards`,\r\n SFO_ChooseGiftcardDescription: `Buy a giftcard to someone you care about`,\r\n SFO_GiftcardDetails: `Giftcard details`,\r\n SFO_GiftcardTo: `Who is the giftcard for (optional)`,\r\n SFO_GiftcardFrom: `Who is the giftcard from (optional)`,\r\n SFO_GiftcardMessage: `Write a greeting (Max 100 characters) (optional)`,\r\n SFO_BookArrangement: `Arrangement`,\r\n SFO_BookConcert: `Concert`,\r\n SFO_BookTableArangement: `Table/arrangement`,\r\n SFO_BookTableEvent: `Table/Event`,\r\n SFO_BordTakeAway: `Table/Take Away`,\r\n SFO_BookTicket: `Ticket`,\r\n SFO_BookLecture: `Lecture`,\r\n SFO_BookTable: `Book Table`,\r\n SFO_BookSpa: `Spa`,\r\n SFO_BookExperience: `Experience`,\r\n SFO_ChooseMonth: `Choose Month`,\r\n SFO_NoRooms: `No rooms were found in the selected timespan!`,\r\n SFO_MinLOS: `The selected period requires a booking of a minimum of`,\r\n SFO_Nights: `nights`,\r\n SFO_MaxLOS: `During the selected period it is possible to book a maximum of`,\r\n\r\n CAL_WeekStart: `0`,\r\n CAL_M01: `January`,\r\n CAL_M02: `February`,\r\n CAL_M03: `March`,\r\n CAL_M04: `April`,\r\n CAL_M05: `May`,\r\n CAL_M06: `June`,\r\n CAL_M07: `July`,\r\n CAL_M08: `August`,\r\n CAL_M09: `September`,\r\n CAL_M10: `October`,\r\n CAL_M11: `November`,\r\n CAL_M12: `December`,\r\n CAL_D0: `Sunday`,\r\n CAL_D1: `Monday`,\r\n CAL_D2: `Tuesday`,\r\n CAL_D3: `Wednesday`,\r\n CAL_D4: `Thursday`,\r\n CAL_D5: `Friday`,\r\n CAL_D6: `Saturday`,\r\n CAL_Selected: `Selected`,\r\n CAL_Occupied: `Closed/Sold out`,\r\n CAL_Arrival: `Closed for arrival`,\r\n CAL_Departure: `Closed for departure`,\r\n CAL_Mon: `M`,\r\n CAL_Tirs: `T`,\r\n CAL_Ons: `W`,\r\n CAL_Tors: `T`,\r\n CAL_Fre: `F`,\r\n CAL_Lor: `S`,\r\n CAL_Sun: `S`,\r\n CAL_Available: `Available`,\r\n CAL_NotPossible: `Not possible`,\r\n\r\n BIN_ChangeDate: `Change date`,\r\n BIN_ChangeRoom: `Change`,\r\n BIN_ChangeAddOns: `Change add-ons`,\r\n BIN_NoAddOns: `No services added`,\r\n BIN_AddOns: `Services added`,\r\n BIN_Reservation: `Your Reservation`,\r\n BIN_Details: `Basic Details`,\r\n BIN_RoomCount: `Rooms`,\r\n BIN_CabinCount: `Cabins`,\r\n BIN_HouseCount: `Houses`,\r\n BIN_UnitCount: `Units`,\r\n BIN_Roomtype: `Room type`,\r\n BIN_Cabintype: `Cabin type`,\r\n BIN_Housetype: `House type`,\r\n BIN_Unittype: `Unit type`,\r\n BIN_Packagetype: `Package type`,\r\n BIN_BasketEmpty: `Basket is empty`,\r\n BIN_BasketGoToCheckout: `Go to checkout`,\r\n\r\n EXC_EmptyBasket: `Basket must not be empty`,\r\n\r\n SEA_Date: `Date`,\r\n SEA_Time: `Time`,\r\n SEA_Quantity: `Quantity`,\r\n SEA_Skip: `Skip`,\r\n SEA_ChooseEvent: `Choose Event`,\r\n SEA_DescriptionStart: `Select`,\r\n SEA_DescriptionEnd: `below or date in the calendar`,\r\n SEA_SoldOut: `Everything is sold out for the choosen month`,\r\n SEA_SoldOutContinue: `Click Continue to jump to the next step`,\r\n SEA_SeatingStandAloneTitle: `Select date of choose one of the displayed options`,\r\n SEA_ResetCalendar: `Show all`,\r\n\r\n MAT_CALENDAR_Calendar_Label: `S`,\r\n MAT_CALENDAR_Close_Calendar_Label: `S`,\r\n MAT_CALENDAR_End_Date_Label: `S`,\r\n MAT_CALENDAR_Next_Month_Label: `S`,\r\n MAT_CALENDAR_Next_Multi_Year_Label: `S`,\r\n MAT_CALENDAR_Next_Year_Label: `S`,\r\n MAT_CALENDAR_Open_Calendar_Label: `S`,\r\n MAT_CALENDAR_Prev_Month_Label: `S`,\r\n MAT_CALENDAR_Prev_Multi_Year_Label: `S`,\r\n MAT_CALENDAR_Prev_Year_Label: `S`,\r\n MAT_CALENDAR_Start_Date_Label: `S`,\r\n MAT_CALENDAR_Switch_To_Month_View_Label: `S`,\r\n MAT_CALENDAR_Switch_To_Multi_Year_View_Label: `S`,\r\n};\r\n","import { Messages } from './index';\r\n\r\nexport const messages: Messages = {\r\n APA_CompanyLogin: `Innritan til fyritøkur`,\r\n APA_Logout: `Log ud`,\r\n APA_Welcome: `Vælkomin`,\r\n APA_ShowPromo: `Avsláttarfrámerki`,\r\n APA_PromoLabel: `Upplýs avsláttarkotu`,\r\n APA_Promo: `Avsláttarkotan`,\r\n APA_PromoSubmit: `Nýt`,\r\n APA_PromoChange: `Rætta`,\r\n APA_ActivateHead: `Aktiver dit login`,\r\n APA_ActivateDesc: `Angiv adgangskode for at aktivere login for`,\r\n APA_Password: `Adgangskode`,\r\n APA_ConfirmPassword: `Váttað passorð`,\r\n APA_PasswordHasUpper: `Adgangskode skal indeholde mindst et stort bogstav (A-Z)`,\r\n APA_PasswordHasLower: `Adgangskode skal indeholde mindst et lille bogstav (a-z)`,\r\n APA_PasswordHasNumber: `Adgangskode skal indeholde mindst et tal (0-9)`,\r\n APA_PasswordLength8: `Adgangskode skal indeholde mindst 8 karakterer`,\r\n APA_ConfirmPasswordEqualTo: `Skeivt loyniorð`,\r\n APA_Activate: `Virkja`,\r\n APA_CustomerNotFound: `Kundin er ikki funnin`,\r\n APA_ResetBasket: `Alt vil blive fjernet fra kurven. Er du sikker?`,\r\n APA_Address: `Bústaður`,\r\n APA_Contact: `Samband`,\r\n APA_VatNumber: `CVR:`,\r\n APA_PromoMessageStart: `Frámerki`,\r\n APA_ValidTime: `Galdandi tíðarskeið`,\r\n APA_PromoMessageEnd: `Frámerki er galdandi á teimum vørum ið eru merktar við prosentvísum avslátturi`,\r\n APA_AQCDecription: `Aldersbeskrivelse`,\r\n APA_Year: `ár`,\r\n APA_Book: `Book`,\r\n\r\n CPA_NothingAvailable_EmptyText: `Vinaliga vel ein annan dag,`,\r\n CPA_NothingAvailable: `Der er ingen ledige værelser, der opfylder dine kriterier`,\r\n CPA_SoldOut: `Útselt`,\r\n CPA_CustomerInvalid: `Ukendt kundeprofil`,\r\n CPA_PromoInvalid: `Frámerkið er óvirki`,\r\n CPA_PromoBetween: `Den indtastede rabatkode er kun gyldig hvis opholdet er i perioden:`,\r\n\r\n RPA_More: `Sí meira`,\r\n RPA_Select: `Vel`,\r\n RPA_Selected: `Valt`,\r\n RPA_From: `Úr`,\r\n RPA_Image: `No image`,\r\n RPA_Description: `Beskrivelse`,\r\n RPA_ChooseRoom: `Vel Kamar`,\r\n RPA_ChoosePackage: `Vel bílegging`,\r\n RPA_ChooseCabin: `Vælg værelse`,\r\n RPA_ChooseHouse: `Vælg værelse`,\r\n RPA_ChooseUnit: `Vælg værelse`,\r\n RPA_BackRate: `Vælg en anden pakke`,\r\n RPA_MaxPersons: `Max gestir á kamari`,\r\n RPA_ChooseYourRoom: `Vel Kamar`,\r\n RPA_ChooseYourCabin: `Vælg værelse`,\r\n RPA_ChooseYourHouse: `Vælg Værelse`,\r\n RPA_ChooseYourUnit: `Vælg værelse`,\r\n RPA_ChooseYourPackage: `Vel bílegging`,\r\n\r\n APA_Services: `Tænastur`,\r\n APA_Add: `LEGG AFTURAT`,\r\n APA_Added: `Tænastur lagdar afturat`,\r\n APA_Remove: `Tak burtur`,\r\n APA_ContentDialog: `Vel tal av persónum og døgum tú ynskir nevndu tænastu dagarnar millum`,\r\n APA_ChooseYourAddOns: `Vel eyka keyp`,\r\n APA_TotalPrice: `kostnaður íalt`,\r\n APA_TotalInBasket: `kpl, yhteensä`,\r\n APA_TotalOf: `Vel stk. á`,\r\n\r\n CUP_Header: `Gestur upplýsing`,\r\n CUP_Accept: `Góðkenn`,\r\n CUP_FName: `Fornavn`,\r\n CUP_FNameReq: `Fornavn skal upplýsast`,\r\n CUP_FPhoneReq: `Mobil skal upplýsast`,\r\n CUP_LName: `Eftirnavn`,\r\n CUP_LNameReq: `Eftirnavn er kravt`,\r\n CUP_Address: `Bústaður`,\r\n CUP_AddressReq: `Adressa skal upplýsast`,\r\n CUP_ZipCode: `Postnummar`,\r\n CUP_ZipCodeReq: `Postnummar skal upplýsast`,\r\n CUP_City: `Bygd`,\r\n CUP_CityReq: `Býur skal upplýsast`,\r\n CUP_Contry: `Land`,\r\n CUP_ContryReq: `Land er påkrævet`,\r\n CUP_Phone: `Fartelefon nummar`,\r\n CUP_PhoneReq: `Fartelefon skal upplýsast`,\r\n CUP_Email: `Teldupostur`,\r\n CUP_EmailRepeat: `Teldupostur`,\r\n CUP_EmailReq: `Teldupostur skal upplýsast`,\r\n CUP_EmailInvalid: `Teldupostur ikki rættur`,\r\n CUP_Comment: `Viðmerkingar`,\r\n CUP_NeedSubscribe: `Eg vil fegin fáa tíðindi við telduposti`,\r\n CUP_AcceptTerms: `Eg havi lisið og góðkenni treytirnar`,\r\n CUP_BookNow: `Book`,\r\n CUP_CancelPolicyHeader: `Ógildingartrygging`,\r\n CUP_CancelPolicyDesc: `Tú hevur møguleika at ógilda bíleggingina um tú ikki fært komið. Fleiri upplýsningar viðv. ógildingartrygging eru í bíleggingartreytunum.`,\r\n CUP_CancelPolicyLabel: `Ja, eg vil fegin keypa ógildingartrygging fyri`,\r\n CUP_GuestInfo: `Kunning um gest`,\r\n CUP_BookingOverview: `Bíleggingar yvirlit`,\r\n CUP_PayWithGiftcard: `Fyri at gjalda við gávukorti`,\r\n CUP_PayWithGiftcardClick: `Trýst her`,\r\n CUP_PayWithGiftcardDescription: `Rita inn gávukortnummar`,\r\n CUP_PayWithGiftcardError: `Gavekort er ikke aktivt eller kunne ikke findes i systemet.`,\r\n CUP_PayWithGiftcardStatus: `Gavekort aktivt`,\r\n CUP_PayWithGiftcardDiscount: `Gavekort beløb`,\r\n CUP_PayWithGiftcardHeader: `Gávukort`,\r\n CUP_PayWithGiftcardInformation: `Ynskir tü at nyta Gávukort`,\r\n CUP_PayWithGiftcardPlaceholder: `Gavekortskode`,\r\n CUP_PayWithGiftcardRedeem: `Indløs`,\r\n CUP_BookingOverviewToPay: `At betale`,\r\n\r\n PAL_GoToPayment: `Go to payment`,\r\n PAL_PaymentComplete: `Leinkjan er útgingin. Vinarliga set teg í samband við`,\r\n PAL_PaymentNotAvailable: `Payment on this reservation is not available`,\r\n\r\n PAR_Payment: `Gjalding`,\r\n PAR_SeekAuthorization: `Tínir kreditkortupplýsingar verða brúktir til gjald, ella verða settir sum trygd fyri keypið.`,\r\n PAR_TotalLabel: `Samlaður kostnaður`,\r\n PAR_TotalPayLabel: `Kostnaður at gjalda`,\r\n PAR_OBSLabel: `OBS: bliv på siden indtil kvitteringsside vises med et reservationsnummer`,\r\n PAR_OBSLabelGiftcard: `OBS: bliv på siden indtil kvitteringsside vises med et ordrenummer`,\r\n PAR_FailedToPay: `Villa við gjalding. Vinaliga kanna kortnummarið.`,\r\n PAR_CardInvalid: `Kortnummarið er ógildigt`,\r\n PAR_CardUnknown: `Ókent slag av korti`,\r\n PAR_CardMonthInvalid: `Mánaðurin er ógildigur`,\r\n PAR_CardYearInvalid: `Árið er ógildigt`,\r\n PAR_CardCVCInvalid: `CVV-kotan er ógildig`,\r\n PAR_FieldRequired: `Hesin rúturin er kravdur`,\r\n PAR_Cancel: `Ógilda`,\r\n PAR_Pay: `Gjald`,\r\n PAR_PaymentMethod: `Payment Methods`,\r\n PAR_Cardnumber: `Kortnummer`,\r\n PAR_MonthPlaceholder: `MM`,\r\n PAR_YearPlaceholder: `ÅÅ`,\r\n\r\n PFP_Header: `Ups! ein villa er íkomin`,\r\n PFP_Info: `Bíleggingin er ikki gjøgnumførd. Vinaliga royn aftur við at trýsta á knøttin niðanfyri. Eingin pengar eru tiknir av kortinum.`,\r\n PFP_TryAgain: `Royn aftur`,\r\n\r\n REP_Header: `Takk fyri bíleggingina,`,\r\n REP_Comment: `herunder finder du din kvittering for din ordre.`,\r\n REP_DateRooms: `Ferðadagar`,\r\n REP_Return: `Aftur til heimasíðuna`,\r\n REP_OrderId: `Bíleggingarnummar`,\r\n REP_ReservationId: `Bíleggingarnummar`,\r\n REP_CustomerInfo: `Personlige oplysninger`,\r\n\r\n REP_Name: `Navn`,\r\n REP_PostCity: `Postnr & By`,\r\n REP_Phone: `Telefon`,\r\n REP_Address: `Bústaður`,\r\n REP_Country: `Land`,\r\n REP_Email: `Email`,\r\n REP_Thanks: `Takk fyri bíleggingina`,\r\n REP_ThanksInfo: `Ein váttan verður send til tín við telduposti`,\r\n REP_ThanksPayment: `Your payment is complete`,\r\n\r\n LOA_Addons: `Henter ekstra ydelser`,\r\n LOA_CustomerInfo: `Henter kunde informationer`,\r\n LOA_ActivatingCustomer: `Aktiver kunde`,\r\n LOA_Translations: `Henter oversættelser`,\r\n LOA_Configuration: `Indlæser konfiguration`,\r\n LOA_Availability: `Henter ledighed`,\r\n LOA_CreatingReservation: `Opretter reservation`,\r\n LOA_HotelInformation: `Indlæser hotel information`,\r\n LOA_Countries: `Henter lande`,\r\n LOA_PreparingPaymnent: `Forbereder betaling`,\r\n LOA_ApplyingPromo: `Indlæser rabatkode`,\r\n LOA_Rooms: `Indlæser værelser`,\r\n LOA_Rates: `Indlæser priser`,\r\n LOA_LoggingIn: `Logger ind`,\r\n LOA_SendingInformation: `Sender information`,\r\n\r\n COM_Continue: `Víðari`,\r\n COM_OK: `OK`,\r\n COM_Persons: `Personer`,\r\n COM_Guest_10: `vaksin`,\r\n COM_Guest_9: `Tannáringur`,\r\n COM_Guest_7: `Pinkubarn`,\r\n COM_Guest_11: `Eldri fólk`,\r\n COM_Guest_8: `Børn`,\r\n COM_Adult: `vaksin`,\r\n COM_Child: `Barn`,\r\n COM_Room: `Kamar`,\r\n COM_Cabin: `Smátta`,\r\n COM_House: `Hús`,\r\n COM_Unit: `Eind`,\r\n COM_Arrival: `Koma`,\r\n COM_Departure: `Fráferð`,\r\n COM_Promocode: `Avsláttarkotan`,\r\n COM_Rooms: `Kømur`,\r\n COM_AddOns: `Tænastur`,\r\n COM_TotalGuests: `Tal av gestum`,\r\n COM_Price: `Prísur`,\r\n COM_TotalPrice: `Samlaður prísur`,\r\n COM_TotalPriceWithTransactionId: `I alt betalt med transaktionsnr.`,\r\n COM_TotalReservedWithTransactionId: `I alt er reserveret med transactionId`,\r\n COM_Close: `Lat aftur`,\r\n COM_Back: `Aftur`,\r\n COM_Error: `Info`,\r\n COM_Info: `Kunning`,\r\n COM_Confirm: `vinarliga vátta`,\r\n COM_Package: `Pakki`,\r\n COM_SoldOutError: `Der er ikke nogle ledige værelser eller pakker på denne dag`,\r\n COM_SearchNew: `Ny søgning`,\r\n COM_TableReservation: `BorðBílegging`,\r\n COM_TableNumberOfPersons: `Tal av gestum við borðið`,\r\n COM_Guests: `Gestir`,\r\n COM_TableChooseProduct: `Vel dato og vøru`,\r\n COM_TablePlaceGuests: `Tær manglar at`,\r\n COM_TableChooseProducts: `Vel vøru(r)`,\r\n COM_TableNumberOfGuestsForProduct: `Tal av gestum til hesa vøru`,\r\n COM_TableBookingFlowAddProduct: `Ynskir tú at gera eina borðbílegging?`,\r\n COM_TableIfNotPressContinue: `Um ikki so trýst á víðari`,\r\n COM_AddToBasket: `Legg í kurvina`,\r\n COM_AddedToBasket: `Lagt í kurvina`,\r\n COM_Type: `Type`,\r\n COM_SeatingSoldOut: `Nothing available at the moment`,\r\n COM_Main: `Home`,\r\n COM_Conference: `Konference`,\r\n COM_Quantity: `Stk.`,\r\n\r\n LFO_Email: `Teldupostur`,\r\n LFO_EmailRequried: `Upplýs teldupost`,\r\n LFO_EmailInvalid: `Teldupostur ikki rættur`,\r\n LFO_Password: `Loyniorð`,\r\n LFO_PasswordRequried: `Upplýs loyniorð`,\r\n LFO_ForgotPassword: `Fæst ikki atgongd til kontuna?`,\r\n LFO_Login: `Rita inn`,\r\n LFO_BackToLogin: `Aftur til innritan`,\r\n LFO_Send: `Send`,\r\n LFO_MessageSend: `Boðið er sent!`,\r\n LFO_LoginError: `Skeivur teldupostur ella skeivt loyniorð`,\r\n LFO_RecoveryError: `Loginoplysninger ugyldige`,\r\n\r\n SFO_ChooseHotel: `Okkara hotel`,\r\n SFO_ChooseHolidayResort: `Frítíðardepil`,\r\n SFO_ChooseCenter: `Depil`,\r\n SFO_ChooseDepartment: `Deild`,\r\n SFO_ParamsHeader: `Vel ferðadagar`,\r\n SFO_Guests: `Gestir á kamari`,\r\n SFO_GuestsCabin: `Gestir á kamari`,\r\n SFO_GuestsHouse: `Gestir á kamari`,\r\n SFO_GuestsUnit: `Gestir á kamari`,\r\n SFO_AddRoom: `Legg kamar afturat`,\r\n SFO_AddCabin: `Legg kamar afturat`,\r\n SFO_AddHouse: `Legg kamar afturat`,\r\n SFO_AddUnit: `Legg kamar afturat`,\r\n SFO_BookStay: `uppihald`,\r\n SFO_BookEvent: `Event`,\r\n SFO_BookTakeAway: `ÚtVið`,\r\n SFO_BookTableReservation: `Borðbílegging`,\r\n SFO_BookGiftcard: `Gávukort`,\r\n SFO_GiftcardMetaData: `Kunning um tíni gávukort`,\r\n SFO_ChooseGiftcard: `Vel gávukort`,\r\n SFO_NumberOfGiftcards: `Hvussu mong gávukort ynskir tú at keypa?`,\r\n SFO_GiftcardAmount: `Tasta inn upphædd`,\r\n SFO_GiftcardEnterDetails: `Nágreinilig kunning um tíni gávukort`,\r\n SFO_ChooseGiftcardDescription: `Keyp eitt gávukort til onkran tú hevur kæran`,\r\n SFO_GiftcardDetails: `Kunning um gávukort`,\r\n SFO_GiftcardTo: `Hvønn er gávukortið til (valfrítt)`,\r\n SFO_GiftcardFrom: `Hvørjum er gávukortið frá (valfrítt)`,\r\n SFO_GiftcardMessage: `Skriva eina heilsan (í mesta lagi 100 tekin) (valfrítt)`,\r\n SFO_BookArrangement: `Tiltak`,\r\n SFO_BookConcert: `Konsert`,\r\n SFO_BookTableArangement: `BorðTiltak`,\r\n SFO_BookTableEvent: `BorðTiltak`,\r\n SFO_BordTakeAway: `BorðÚtVið`,\r\n SFO_BookTicket: `Atgongumerki`,\r\n SFO_BookLecture: `Fyrilestur`,\r\n SFO_BookTable: `Borð`,\r\n SFO_BookSpa: `Kurstað`,\r\n SFO_BookExperience: `Uppliving`,\r\n SFO_ChooseMonth: `Vel Måned`,\r\n SFO_NoRooms: `Eingi kømur eru tøk í valda tíðarskeiðnum`,\r\n SFO_MinLOS: `Den valgte periode kræver booking af minimum`,\r\n SFO_Nights: `nætter`,\r\n SFO_MaxLOS: `I den valgte periode er det maksimalt muligt at booke`,\r\n\r\n CAL_WeekStart: `1`,\r\n CAL_M01: `Januar`,\r\n CAL_M02: `Februar`,\r\n CAL_M03: `Mars`,\r\n CAL_M04: `April`,\r\n CAL_M05: `Mai`,\r\n CAL_M06: `Juni`,\r\n CAL_M07: `Juli`,\r\n CAL_M08: `August`,\r\n CAL_M09: `September`,\r\n CAL_M10: `Oktober`,\r\n CAL_M11: `November`,\r\n CAL_M12: `Desember`,\r\n CAL_D0: `Sunnudagur`,\r\n CAL_D1: `Mánadagur`,\r\n CAL_D2: `Týsdagur`,\r\n CAL_D3: `Mikudagur`,\r\n CAL_D4: `Hósdagur`,\r\n CAL_D5: `Fríggjadagur`,\r\n CAL_D6: `Leygardagur`,\r\n CAL_Selected: `Valgt`,\r\n CAL_Occupied: `Stongt/Útselt`,\r\n CAL_Arrival: `Ongin koma`,\r\n CAL_Departure: `Ongin fráferð`,\r\n CAL_Mon: `M`,\r\n CAL_Tirs: `T`,\r\n CAL_Ons: `O`,\r\n CAL_Tors: `T`,\r\n CAL_Fre: `F`,\r\n CAL_Lor: `L`,\r\n CAL_Sun: `S`,\r\n CAL_Available: `Tøkt`,\r\n CAL_NotPossible: `Ikki møguligt`,\r\n\r\n BIN_ChangeDate: `Rætta dagar`,\r\n BIN_ChangeRoom: `Rætta`,\r\n BIN_ChangeAddOns: `Broyt eyka tænastur`,\r\n BIN_NoAddOns: `Eingin tænasta løgd afturat`,\r\n BIN_AddOns: `Ekstra ydelser tilføjet`,\r\n BIN_Reservation: `Tín bílegging`,\r\n BIN_Details: `Grundleggjandi staklutir`,\r\n BIN_RoomCount: `Værelser`,\r\n BIN_CabinCount: `Hytter`,\r\n BIN_HouseCount: `Huse`,\r\n BIN_UnitCount: `Enheder`,\r\n BIN_Roomtype: `Værelsestype`,\r\n BIN_Cabintype: `Værelsestype`,\r\n BIN_Housetype: `Værelsestype`,\r\n BIN_Unittype: `Værelsestype`,\r\n BIN_Packagetype: `Pakketype`,\r\n BIN_BasketEmpty: `Kurvin er tóm`,\r\n BIN_BasketGoToCheckout: `Far til kassan`,\r\n\r\n EXC_EmptyBasket: `Basket must not be empty`,\r\n\r\n SEA_Date: `Dagur`,\r\n SEA_Time: `Tíð`,\r\n SEA_Quantity: `Tal`,\r\n SEA_Skip: `Spring over`,\r\n SEA_ChooseEvent: `Vælg en oplevelse`,\r\n SEA_DescriptionStart: `Vel`,\r\n SEA_DescriptionEnd: `below or date in the calendar`,\r\n SEA_SoldOut: `Alt er udsolgt for den valgte måned`,\r\n SEA_SoldOutContinue: `Tryk på Fortsæt for at springe over`,\r\n SEA_SeatingStandAloneTitle: `Vælg en dato eller en af de viste`,\r\n SEA_ResetCalendar: `Vís øll`,\r\n\r\n MAT_CALENDAR_Calendar_Label: `S`,\r\n MAT_CALENDAR_Close_Calendar_Label: `S`,\r\n MAT_CALENDAR_End_Date_Label: `S`,\r\n MAT_CALENDAR_Next_Month_Label: `S`,\r\n MAT_CALENDAR_Next_Multi_Year_Label: `S`,\r\n MAT_CALENDAR_Next_Year_Label: `S`,\r\n MAT_CALENDAR_Open_Calendar_Label: `S`,\r\n MAT_CALENDAR_Prev_Month_Label: `S`,\r\n MAT_CALENDAR_Prev_Multi_Year_Label: `S`,\r\n MAT_CALENDAR_Prev_Year_Label: `S`,\r\n MAT_CALENDAR_Start_Date_Label: `S`,\r\n MAT_CALENDAR_Switch_To_Month_View_Label: `S`,\r\n MAT_CALENDAR_Switch_To_Multi_Year_View_Label: `S`,\r\n};\r\n","import { Messages } from './index';\r\n\r\nexport const messages: Messages = {\r\n APA_CompanyLogin: `Innskráning fyrirtækis`,\r\n APA_Logout: `Að skrá þig út`,\r\n APA_Welcome: `Halló`,\r\n APA_ShowPromo: `Afsláttarkóði`,\r\n APA_PromoLabel: `Sláðu inn kynningarkóða`,\r\n APA_Promo: `Afsláttarkóði`,\r\n APA_PromoSubmit: `Notaðu`,\r\n APA_PromoChange: `breyta`,\r\n APA_ActivateHead: `Virkjaðu innskráningu þína`,\r\n APA_ActivateDesc: `Sláðu inn lykilorð til að virkja innskráningu fyrir`,\r\n APA_Password: `Lykilorð`,\r\n APA_ConfirmPassword: `Staðfesta lykilorð`,\r\n APA_PasswordHasUpper: `Lykilorð verður að innihalda að minnsta kosti einn hástaf (A-Z)`,\r\n APA_PasswordHasLower: `Lykilorð verður að innihalda að minnsta kosti einn lágstaf (a-z)`,\r\n APA_PasswordHasNumber: `Lykilorð verður að innihalda að minnsta kosti eina tölu (0-9)`,\r\n APA_PasswordLength8: `Lykilorð verður að innihalda að minnsta kosti 8 stafi`,\r\n APA_ConfirmPasswordEqualTo: `Lykilorð passa ekki saman`,\r\n APA_Activate: `Virkjaðu`,\r\n APA_CustomerNotFound: `Því miður getum við ekki fundið viðskiptavinaskrá í gagnagrunninum`,\r\n APA_ResetBasket: `Allt verður tekið úr körfunni. Ert þú viss?`,\r\n APA_Address: `Heimilisfang`,\r\n APA_Contact: `Hafðu samband`,\r\n APA_VatNumber: `VAT:`,\r\n APA_PromoMessageStart: `Afsláttarkóði`,\r\n APA_ValidTime: `Gildistími`,\r\n APA_PromoMessageEnd: `Kynningarkóði gildir á vörum merktum kóðanum`,\r\n APA_AQCDecription: `Aldurslýsing`,\r\n APA_Year: `ár`,\r\n APA_Book: `Bóka`,\r\n\r\n CPA_NothingAvailable_EmptyText: `Vinsamlegast veldu nýja dagsetningu hér að neðan, eða farðu til baka og breyttu upplýsingum þínum frá fyrsta skrefi`,\r\n CPA_NothingAvailable: `Það eru engin laus herbergi sem uppfylla skilyrðin þín`,\r\n CPA_SoldOut: `Uppselt`,\r\n CPA_CustomerInvalid: `Óþekkt viðskiptavinasnið`,\r\n CPA_PromoInvalid: `Kynningarkóði sem þú slóst inn er ógildur`,\r\n CPA_PromoBetween: `Kynningarkóði sem þú slóst inn gildir aðeins ef dvalartíminn er á milli:`,\r\n\r\n RPA_More: `Sjá meira`,\r\n RPA_Select: `Veldu`,\r\n RPA_Selected: `Valið`,\r\n RPA_From: `Verð frá`,\r\n RPA_Image: `Engin mynd`,\r\n RPA_Description: `Lýsing`,\r\n RPA_ChooseRoom: `Veldu herbergi`,\r\n RPA_ChoosePackage: `Veldu Pakki`,\r\n RPA_ChooseCabin: `Veldu skála`,\r\n RPA_ChooseHouse: `Veldu hús`,\r\n RPA_ChooseUnit: `Veldu einingu`,\r\n RPA_BackRate: `Veldu annan pakka`,\r\n RPA_MaxPersons: `Hámarksfjöldi fólks`,\r\n RPA_ChooseYourRoom: `Veldu herbergi`,\r\n RPA_ChooseYourCabin: `Veldu skála`,\r\n RPA_ChooseYourHouse: `Veldu hús`,\r\n RPA_ChooseYourUnit: `Veldu einingu`,\r\n RPA_ChooseYourPackage: `Veldu pakka`,\r\n\r\n APA_Services: `Þjónusta`,\r\n APA_Add: `Bæta við`,\r\n APA_Added: `Bætt við`,\r\n APA_Remove: `Fjarlægja`,\r\n APA_ContentDialog: `Veldu fjölda gesta og daga sem þú vilt velja þjónustuna. Á milli daganna`,\r\n APA_ChooseYourAddOns: `Veldu viðbætur`,\r\n APA_TotalPrice: `Veldu viðbætur`,\r\n APA_TotalInBasket: `stykki, samtals`,\r\n APA_TotalOf: `Veldu magn af`,\r\n\r\n CUP_Header: `Upplýsingar kaupenda`,\r\n CUP_Accept: `Samþykkja`,\r\n CUP_FName: `Nafn`,\r\n CUP_FNameReq: `Fornafn er áskilið`,\r\n CUP_FPhoneReq: `Nafn síma er krafist`,\r\n CUP_LName: `Eftirnafn`,\r\n CUP_LNameReq: `Eftirnafn er áskilið`,\r\n CUP_Address: `Heimilisfang`,\r\n CUP_AddressReq: `Heimilisfang er áskilið`,\r\n CUP_ZipCode: `Póstnúmer`,\r\n CUP_ZipCodeReq: `Póstnúmer er áskilið`,\r\n CUP_City: `Borg`,\r\n CUP_CityReq: `Borg er krafist`,\r\n CUP_Contry: `landi`,\r\n CUP_ContryReq: `Land er krafist`,\r\n CUP_Phone: `Farsímanúmer`,\r\n CUP_PhoneReq: `Farsími er nauðsynlegur`,\r\n CUP_Email: `Tölvupóstur`,\r\n CUP_EmailRepeat: `Endurtaktu tölvupóstfang`,\r\n CUP_EmailReq: `Tölvupóstur er nauðsynlegur`,\r\n CUP_EmailInvalid: `Tölvupóstur er ekki gildur`,\r\n CUP_Comment: `Athugasemd`,\r\n CUP_NeedSubscribe: `Gerast áskrifandi að fréttabréfi`,\r\n CUP_AcceptTerms: `Skilmálar og skilyrði`,\r\n CUP_BookNow: `Bókaðu núna!`,\r\n CUP_CancelPolicyHeader: `Forfallatrygging`,\r\n CUP_CancelPolicyDesc: `Þú hefur möguleika á að hætta við dvöl þína ef þú kemst ekki. Sjá nánari upplýsingar um forfallatryggingu í bókunarskilmálum okkar.`,\r\n CUP_CancelPolicyLabel: `Já, mig langar að kaupa forfallatryggingu fyrir`,\r\n CUP_GuestInfo: `Upplýsingar um gesti`,\r\n CUP_BookingOverview: `Bókunaryfirlit`,\r\n CUP_PayWithGiftcard: `Til að greiða með gjafakorti`,\r\n CUP_PayWithGiftcardClick: `Ýttu hér`,\r\n CUP_PayWithGiftcardDescription: `Sláðu inn kóðann af gjafakortinu þínu`,\r\n CUP_PayWithGiftcardError: `Gjafakort er ekki virkt eða er ekki til.`,\r\n CUP_PayWithGiftcardStatus: `Gjafakort virkt`,\r\n CUP_PayWithGiftcardDiscount: `Upphæð gjafakorts`,\r\n CUP_PayWithGiftcardHeader: `Gjafakort`,\r\n CUP_PayWithGiftcardInformation: `Viltu innleysa gjafakort?`,\r\n CUP_PayWithGiftcardPlaceholder: `Gjafakortskóði`,\r\n CUP_PayWithGiftcardRedeem: `Innleysa`,\r\n CUP_BookingOverviewToPay: `Að greiða`,\r\n\r\n PAL_GoToPayment: `Farðu í greiðslu`,\r\n PAL_PaymentComplete: `Þessari greiðslu er lokið`,\r\n PAL_PaymentNotAvailable: `Ekki er hægt að greiða fyrir þessa pöntun`,\r\n\r\n PAR_Payment: `Greiðsla`,\r\n PAR_SeekAuthorization: `Vinsamlega fylltu út kreditkortaupplýsingarnar þínar hér að neðan til að staðfesta greiðslu þína og ganga frá pöntun`,\r\n PAR_TotalLabel: `Verð fyrir pöntunina þína`,\r\n PAR_TotalPayLabel: `Verð til að greiða`,\r\n PAR_OBSLabel: `ATH: Vertu á síðunni þar til kvittunarsíðan birtist með bíleggingarnummar`,\r\n PAR_OBSLabelGiftcard: `ATH: Vertu á síðunni þar til kvittunarsíðan birtist með bíleggingarnummar`,\r\n PAR_FailedToPay: `Tókst ekki að borga. Athugaðu kortanúmerið þitt.`,\r\n PAR_CardInvalid: `Kortanúmer er ekki gilt`,\r\n PAR_CardUnknown: `Tegund korts ekki þekkt`,\r\n PAR_CardMonthInvalid: `Mánuður er ógildur`,\r\n PAR_CardYearInvalid: `Ár er ógilt`,\r\n PAR_CardCVCInvalid: `CVV kóði er ógildur`,\r\n PAR_FieldRequired: `Þessi reitur er nauðsynlegur`,\r\n PAR_Cancel: `Hætta við`,\r\n PAR_Pay: `Borga`,\r\n PAR_PaymentMethod: `Greiðslumáti`,\r\n PAR_Cardnumber: `Kortanúmer`,\r\n PAR_MonthPlaceholder: `MM`,\r\n PAR_YearPlaceholder: `Ó`,\r\n\r\n PFP_Header: `Hófur! Því miður hefur komið upp villa`,\r\n PFP_Info: `Og pöntunin þín hefur EKKI farið í gegn. Vinsamlegast reyndu aftur með því að smella á hnappinn hér að neðan. Engir peningar hafa verið teknir af reikningnum þínum.`,\r\n PFP_TryAgain: `Reyndu aftur`,\r\n\r\n REP_Header: `Takk fyrir pöntunina,`,\r\n REP_Comment: `asd`,\r\n REP_DateRooms: `ferðadagsetning`,\r\n REP_Return: `Aftur á heimasíðuna`,\r\n REP_OrderId: `Bíleggingarnummar`,\r\n REP_ReservationId: `Bókunarnúmer`,\r\n REP_CustomerInfo: `Persónuupplýsingar`,\r\n\r\n REP_Name: `Nafn`,\r\n REP_PostCity: `Póstnúmer og borg`,\r\n REP_Phone: `Símanúmer`,\r\n REP_Address: `Heimilisfang`,\r\n REP_Country: `Land`,\r\n REP_Email: `Tölvupóstur`,\r\n REP_Thanks: `Takk fyrir pöntunina`,\r\n REP_ThanksInfo: `Þú færð staðfestingu innan skamms tíma með tölvupósti.`,\r\n REP_ThanksPayment: `Greiðslu þinni er lokið`,\r\n\r\n LOA_Addons: `Hleður viðbótum`,\r\n LOA_CustomerInfo: `Hleður upplýsingum um viðskiptavini`,\r\n LOA_ActivatingCustomer: `Virkur viðskiptavinur`,\r\n LOA_Translations: `Hleður þýðingar`,\r\n LOA_Configuration: `Hleður uppsetningu`,\r\n LOA_Availability: `Hleðsla framboð`,\r\n LOA_CreatingReservation: `Búa til fyrirvara`,\r\n LOA_HotelInformation: `Hleður hótelstillingu`,\r\n LOA_Countries: `Hleður lönd`,\r\n LOA_PreparingPaymnent: `Undirbúa greiðslur`,\r\n LOA_ApplyingPromo: `Notar kynningarkóða`,\r\n LOA_Rooms: `Hleðsla herbergja`,\r\n LOA_Rates: `Hleðsluverð`,\r\n LOA_LoggingIn: `Innskráning`,\r\n LOA_SendingInformation: `Sendir upplýsingar`,\r\n\r\n COM_Continue: `Halda áfram`,\r\n COM_OK: `Allt í lagi`,\r\n COM_Persons: `Persónur`,\r\n COM_Guest_10: `Fullorðnir`,\r\n COM_Guest_9: `Unglingar`,\r\n COM_Guest_7: `Ungbörn`,\r\n COM_Guest_11: `Eldri fólk`,\r\n COM_Guest_8: `Börn`,\r\n COM_Adult: `Fullorðinn`,\r\n COM_Child: `Barn`,\r\n COM_Room: `Herbergi`,\r\n COM_Cabin: `Skáli`,\r\n COM_House: `Hús`,\r\n COM_Unit: `Eining`,\r\n COM_Arrival: `Koma`,\r\n COM_Departure: `Brottför`,\r\n COM_Promocode: `Kynningarkóði`,\r\n COM_Rooms: `Herbergi`,\r\n COM_AddOns: `Viðbætur`,\r\n COM_TotalGuests: `Samtals gestir`,\r\n COM_Price: `Verð`,\r\n COM_TotalPrice: `Heildarverð`,\r\n COM_TotalPriceWithTransactionId: `asd`,\r\n COM_TotalReservedWithTransactionId: `asd`,\r\n COM_Close: `Loka`,\r\n COM_Back: `Til baka`,\r\n COM_Error: `Upplýsingar`,\r\n COM_Info: `Upplýsingar`,\r\n COM_Confirm: `Staðfesta`,\r\n COM_Package: `Pakki`,\r\n COM_SoldOutError: `Það eru engin laus herbergi eða pakkar á þessari dagsetningu`,\r\n COM_SearchNew: `Ný leit`,\r\n COM_TableReservation: `Borðapantanir`,\r\n COM_TableNumberOfPersons: `Fjöldi fólks við borðið`,\r\n COM_Guests: `Gestir`,\r\n COM_TableChooseProduct: `Veldu dagsetningu og vörur`,\r\n COM_TablePlaceGuests: `Þú þarft að setja`,\r\n COM_TableChooseProducts: `Veldu vöru(r)`,\r\n COM_TableNumberOfGuestsForProduct: `Fjöldi gesta fyrir þessa vöru`,\r\n COM_TableBookingFlowAddProduct: `Viltu bæta við borðpöntun við dvölina?`,\r\n COM_TableIfNotPressContinue: `Ef ekki ýttu á halda áfram`,\r\n COM_AddToBasket: `Setja í körfu`,\r\n COM_AddedToBasket: `Bætt við í kurv`,\r\n COM_Type: `Gerð`,\r\n COM_SeatingSoldOut: `Ekkert í boði í augnablikinu`,\r\n COM_Main: `Heim`,\r\n COM_Conference: `Ráðstefna`,\r\n COM_Quantity: `Magn`,\r\n\r\n LFO_Email: `Tölvupóstur`,\r\n LFO_EmailRequried: `Tölvupóstur er nauðsynlegur`,\r\n LFO_EmailInvalid: `Tölvupóstur er ekki gildur`,\r\n LFO_Password: `Lykilorð`,\r\n LFO_PasswordRequried: `Lykilorð krafist`,\r\n LFO_ForgotPassword: `Geturðu ekki fengið aðgang að reikningnum þínum?`,\r\n LFO_Login: `Skrá inn`,\r\n LFO_BackToLogin: `Til baka í Innskráning`,\r\n LFO_Send: `Senda`,\r\n LFO_MessageSend: `Skilaboð send!`,\r\n LFO_LoginError: `Rangt netfang eða lykilorð`,\r\n LFO_RecoveryError: `Innskráningarupplýsingar ógildar`,\r\n\r\n SFO_ChooseHotel: `Hótelin okkar`,\r\n SFO_ChooseHolidayResort: `Orlofsdvalarstaðirnir okkar`,\r\n SFO_ChooseCenter: `Miðstöðvar okkar`,\r\n SFO_ChooseDepartment: `Veldu Deild`,\r\n SFO_ParamsHeader: `Veldu dagsetningu`,\r\n SFO_Guests: `Gestir í herbergi`,\r\n SFO_GuestsCabin: `Gestir í Cabin`,\r\n SFO_GuestsHouse: `Gestir í húsinu`,\r\n SFO_GuestsUnit: `Gestir í einingu`,\r\n SFO_AddRoom: `Fleiri herbergi`,\r\n SFO_AddCabin: `Fleiri skálar`,\r\n SFO_AddHouse: `Fleiri hús`,\r\n SFO_AddUnit: `Fleiri einingar`,\r\n SFO_BookStay: `vera`,\r\n SFO_BookEvent: `Event`,\r\n SFO_BookTakeAway: `Taka í burtu`,\r\n SFO_BookTableReservation: `Borðapantanir`,\r\n SFO_BookGiftcard: `Gjafakort`,\r\n SFO_GiftcardMetaData: `Lýsigögn fyrir gjafakortið þitt`,\r\n SFO_ChooseGiftcard: `Veldu Gjafakort`,\r\n SFO_NumberOfGiftcards: `Hversu mörg af völdum gjafakortum viltu kaupa?`,\r\n SFO_GiftcardAmount: `Sláðu inn upphæð`,\r\n SFO_GiftcardEnterDetails: `Sláðu inn upplýsingar um gjafakortin þín`,\r\n SFO_ChooseGiftcardDescription: `Kauptu gjafakort til einhvers sem þér þykir vænt um`,\r\n SFO_GiftcardDetails: `Upplýsingar um gjafakort`,\r\n SFO_GiftcardTo: `Fyrir hvern er gjafakortið (valfrjálst)`,\r\n SFO_GiftcardFrom: `Frá hverjum er gjafakortið (valfrjálst)`,\r\n SFO_GiftcardMessage: `Skrifaðu kveðju (Hámark 100 stafir) (valfrjálst)`,\r\n SFO_BookArrangement: `Fyrirkomulag`,\r\n SFO_BookConcert: `Tónleikar`,\r\n SFO_BookTableArangement: `Borð/fyrirkomulag`,\r\n SFO_BookTableEvent: `Tafla/viðburður`,\r\n SFO_BordTakeAway: `Borð / Take Away`,\r\n SFO_BookTicket: `Miði`,\r\n SFO_BookLecture: `Fyrirlestur`,\r\n SFO_BookTable: `Bókaborð`,\r\n SFO_BookSpa: `Spa`,\r\n SFO_BookExperience: `Viðburður`,\r\n SFO_ChooseMonth: `Veldu mánuð`,\r\n SFO_NoRooms: `Engin herbergi fundust á völdum tíma!`,\r\n SFO_MinLOS: `Valið tímabil krefst bókunar að lágmarki`,\r\n SFO_Nights: `nætur`,\r\n SFO_MaxLOS: `Á völdu tímabili er hægt að bóka að hámarki`,\r\n\r\n CAL_WeekStart: `1`,\r\n CAL_M01: `janúar`,\r\n CAL_M02: `febrúar`,\r\n CAL_M03: `mars`,\r\n CAL_M04: `apríl`,\r\n CAL_M05: `maí`,\r\n CAL_M06: `júní`,\r\n CAL_M07: `júlí`,\r\n CAL_M08: `ágúst`,\r\n CAL_M09: `september`,\r\n CAL_M10: `október`,\r\n CAL_M11: `nóvember`,\r\n CAL_M12: `desember`,\r\n CAL_D0: `sunnudag`,\r\n CAL_D1: `Mánudagur`,\r\n CAL_D2: `þriðjudag`,\r\n CAL_D3: `miðvikudag`,\r\n CAL_D4: `fimmtudag`,\r\n CAL_D5: `föstudag`,\r\n CAL_D6: `laugardag`,\r\n CAL_Selected: `Valið`,\r\n CAL_Occupied: `Uppselt/Lokað`,\r\n CAL_Arrival: `Lokað fyrir komu`,\r\n CAL_Departure: `Lokað vegna brottfarar`,\r\n CAL_Mon: `M`,\r\n CAL_Tirs: `þ`,\r\n CAL_Ons: `m`,\r\n CAL_Tors: `f`,\r\n CAL_Fre: `f`,\r\n CAL_Lor: `L`,\r\n CAL_Sun: `S`,\r\n CAL_Available: `Laus`,\r\n CAL_NotPossible: `Ekki mögulegt`,\r\n\r\n BIN_ChangeDate: `Breyta dagsetningu`,\r\n BIN_ChangeRoom: `Breyta`,\r\n BIN_ChangeAddOns: `Breyta viðbótum`,\r\n BIN_NoAddOns: `Engum þjónustu bætt við`,\r\n BIN_AddOns: `Þjónusta bætt við`,\r\n BIN_Reservation: `Bókun þín`,\r\n BIN_Details: `Grunnupplýsingar`,\r\n BIN_RoomCount: `Herbergi`,\r\n BIN_CabinCount: `Skálar`,\r\n BIN_HouseCount: `Hús`,\r\n BIN_UnitCount: `Einingar`,\r\n BIN_Roomtype: `Herbergistegund`,\r\n BIN_Cabintype: `Gerð klefa`,\r\n BIN_Housetype: `Húsgerð`,\r\n BIN_Unittype: `Tegund eininga`,\r\n BIN_Packagetype: `Tegund pakka`,\r\n BIN_BasketEmpty: `Karfan er tóm`,\r\n BIN_BasketGoToCheckout: `Farðu í kassa`,\r\n\r\n EXC_EmptyBasket: `Karfan má ekki vera tóm`,\r\n\r\n SEA_Date: `Dagsetning`,\r\n SEA_Time: `Tími`,\r\n SEA_Quantity: `Magn`,\r\n SEA_Skip: `Sleppa`,\r\n SEA_ChooseEvent: `Veldu Viðburður`,\r\n SEA_DescriptionStart: `Select`,\r\n SEA_DescriptionEnd: `below or date in the calendar`,\r\n SEA_SoldOut: `Allt er uppselt fyrir valinn mánuð`,\r\n SEA_SoldOutContinue: `Everything is sold out for the chosen month`,\r\n SEA_SeatingStandAloneTitle: `Veldu dagsetningu eða eina af þeim sem sýndar eru valkosti`,\r\n SEA_ResetCalendar: `Sýna allar`,\r\n\r\n MAT_CALENDAR_Calendar_Label: `S`,\r\n MAT_CALENDAR_Close_Calendar_Label: `S`,\r\n MAT_CALENDAR_End_Date_Label: `S`,\r\n MAT_CALENDAR_Next_Month_Label: `S`,\r\n MAT_CALENDAR_Next_Multi_Year_Label: `S`,\r\n MAT_CALENDAR_Next_Year_Label: `S`,\r\n MAT_CALENDAR_Open_Calendar_Label: `S`,\r\n MAT_CALENDAR_Prev_Month_Label: `S`,\r\n MAT_CALENDAR_Prev_Multi_Year_Label: `S`,\r\n MAT_CALENDAR_Prev_Year_Label: `S`,\r\n MAT_CALENDAR_Start_Date_Label: `S`,\r\n MAT_CALENDAR_Switch_To_Month_View_Label: `S`,\r\n MAT_CALENDAR_Switch_To_Multi_Year_View_Label: `S`,\r\n};\r\n","import { Messages } from './index';\r\n\r\nexport const messages: Messages = {\r\n APA_CompanyLogin: `Firma login`,\r\n APA_Logout: `Log ud`,\r\n APA_Welcome: `Velkommen`,\r\n APA_ShowPromo: `Rabatkode`,\r\n APA_PromoLabel: `Indtast rabatkode`,\r\n APA_Promo: `Rabatkode`,\r\n APA_PromoSubmit: `Benyt`,\r\n APA_PromoChange: `ændre`,\r\n APA_ActivateHead: `Aktiver dit login`,\r\n APA_ActivateDesc: `Angiv adgangskode for at aktivere login for`,\r\n APA_Password: `Adgangskode`,\r\n APA_ConfirmPassword: `Bekræft adgangskode`,\r\n APA_PasswordHasUpper: `Adgangskode skal indeholde mindst et stort bogstav (A-Z)`,\r\n APA_PasswordHasLower: `Adgangskode skal indeholde mindst et lille bogstav (a-z)`,\r\n APA_PasswordHasNumber: `Adgangskode skal indeholde mindst et tal (0-9)`,\r\n APA_PasswordLength8: `Adgangskode skal indeholde mindst 8 karakterer`,\r\n APA_ConfirmPasswordEqualTo: `Forkert adgangskode`,\r\n APA_Activate: `Aktivera`,\r\n APA_CustomerNotFound: `Kunde ikke fundet`,\r\n APA_ResetBasket: `Alt vil blive fjernet fra kurven. Er du sikker?`,\r\n APA_Address: `Adresse`,\r\n APA_Contact: `Kontakt`,\r\n APA_VatNumber: `CVR:`,\r\n APA_PromoMessageStart: `Kampagne koden`,\r\n APA_ValidTime: `Gyldigheds periode`,\r\n APA_PromoMessageEnd: `Koden er gyldig på de produkter der er markeret med en procentvis rabat`,\r\n APA_AQCDecription: `Aldersbeskrivelse`,\r\n APA_Year: `år`,\r\n APA_Book: `Book`,\r\n\r\n CPA_NothingAvailable_EmptyText: `Vælg venligst en ny dato herunder, eller gå tilbage og ændre dine oplysninger fra første step`,\r\n CPA_NothingAvailable: `Der er ingen ledige værelser, der opfylder dine kriterier`,\r\n CPA_SoldOut: `Udsolgt`,\r\n CPA_CustomerInvalid: `Ukendt kundeprofil`,\r\n CPA_PromoInvalid: `Den indtastede rabatkode er ugyldig.`,\r\n CPA_PromoBetween: `Den indtastede rabatkode er kun gyldig hvis opholdet er i perioden:`,\r\n\r\n RPA_More: `Se mere`,\r\n RPA_Select: `Vælg`,\r\n RPA_Selected: `Valgt`,\r\n RPA_From: `Fra`,\r\n RPA_Image: `No image`,\r\n RPA_Description: `Description`,\r\n RPA_ChooseRoom: `Vælg værelse`,\r\n RPA_ChoosePackage: `Vælg Pakke`,\r\n RPA_ChooseCabin: `Vælg værelse`,\r\n RPA_ChooseHouse: `Vælg værelse`,\r\n RPA_ChooseUnit: `Vælg værelse`,\r\n RPA_BackRate: `Vælg en anden pakke`,\r\n RPA_MaxPersons: `Maks antal personer`,\r\n RPA_ChooseYourRoom: `Vælg værelse`,\r\n RPA_ChooseYourCabin: `Vælg værelse`,\r\n RPA_ChooseYourHouse: `Vælg værelse`,\r\n RPA_ChooseYourUnit: `Vælg værelse`,\r\n RPA_ChooseYourPackage: `Vælg pakke`,\r\n\r\n APA_Services: `Ekstra tilkøb`,\r\n APA_Add: `Tilføj`,\r\n APA_Added: `Tilføjet`,\r\n APA_Remove: `Fjern`,\r\n APA_ContentDialog: `Vælg det antal personer og dage du ønsker den valgte service. Mellem datoerne`,\r\n APA_ChooseYourAddOns: `Vælg ekstra tilkøb`,\r\n APA_TotalPrice: `Samlet pris`,\r\n APA_TotalInBasket: `stk, i alt`,\r\n APA_TotalOf: `Vælg antal à`,\r\n\r\n CUP_Header: `Gæsteinformation`,\r\n CUP_Accept: `Accepter betingelser`,\r\n CUP_FName: `Fornavn`,\r\n CUP_FNameReq: `Fornavn skal oplyses`,\r\n CUP_FPhoneReq: `Mobil skal oplyses`,\r\n CUP_LName: `Efternavn`,\r\n CUP_LNameReq: `Efternavn skal oplyses`,\r\n CUP_Address: `Adresse`,\r\n CUP_AddressReq: `Adressen skal oplyses`,\r\n CUP_ZipCode: `Postnummer`,\r\n CUP_ZipCodeReq: `Postnr. skal oplyses`,\r\n CUP_City: `By`,\r\n CUP_CityReq: `By skal oplyses`,\r\n CUP_Contry: `Land`,\r\n CUP_ContryReq: `Land er påkrævet`,\r\n CUP_Phone: `Mobil`,\r\n CUP_PhoneReq: `Mobilnr. skal oplyses`,\r\n CUP_Email: `E-mail`,\r\n CUP_EmailRepeat: `E-mail`,\r\n CUP_EmailReq: `E-mail skal oplyses`,\r\n CUP_EmailInvalid: `E-mail er ikke korrekt`,\r\n CUP_Comment: `Kommentarer`,\r\n CUP_NeedSubscribe: `Jeg vil gerne modtage nyheder pr. e-mail.`,\r\n CUP_AcceptTerms: `Jeg har læst og accepterer betingelserne.`,\r\n CUP_BookNow: `Book`,\r\n CUP_CancelPolicyHeader: `Afbestillingsforsikring`,\r\n CUP_CancelPolicyDesc: `Du har mulighed for at annullere dit ophold hvis du skulle blive forhindret i at ankomme. Se yderligere oplysninger om vilkår for afbestillingsbeskyttelsen i vores betingelser.`,\r\n CUP_CancelPolicyLabel: `Ja, jeg vil gerne tilkøbe afbestillingsforsikring til`,\r\n CUP_GuestInfo: `Gæsteoplysninger`,\r\n CUP_BookingOverview: `Booking oversigt`,\r\n CUP_PayWithGiftcard: `For at betale med gavekort`,\r\n CUP_PayWithGiftcardClick: `Klik her`,\r\n CUP_PayWithGiftcardDescription: `Indtast din kode fra dit gavekort`,\r\n CUP_PayWithGiftcardError: `Gavekort er ikke aktivt eller kunne ikke findes i systemet.`,\r\n CUP_PayWithGiftcardStatus: `Gavekort aktivt`,\r\n CUP_PayWithGiftcardDiscount: `Gavekort beløb`,\r\n CUP_PayWithGiftcardHeader: `Gavekort`,\r\n CUP_PayWithGiftcardInformation: `Vil du indløse et gavekort?`,\r\n CUP_PayWithGiftcardPlaceholder: `Gavekortskode`,\r\n CUP_PayWithGiftcardRedeem: `Indløs`,\r\n CUP_BookingOverviewToPay: `At betale`,\r\n\r\n PAL_GoToPayment: `Gå til betaling`,\r\n PAL_PaymentComplete: `Denne betaling er afsluttet`,\r\n PAL_PaymentNotAvailable: `Payment on this reservation is not available`,\r\n\r\n PAR_Payment: `Betaling`,\r\n PAR_SeekAuthorization: `Dine kreditkortoplysninger vil blive brugt som betaling, eller alternativt som sikkerhed for købet.`,\r\n PAR_TotalLabel: `Pris på din bestilling`,\r\n PAR_TotalPayLabel: `Pris at betale`,\r\n PAR_OBSLabel: `OBS: bliv på siden indtil kvitteringsside vises med et reservationsnummer`,\r\n PAR_OBSLabelGiftcard: `OBS: bliv på siden indtil kvitteringsside vises med et ordrenummer`,\r\n PAR_FailedToPay: `Det lykkedes ikke at betale. Tjek dit kortnummer.`,\r\n PAR_CardInvalid: `Kortnummer er ikke gyldigt`,\r\n PAR_CardUnknown: `Korttype ikke kendt`,\r\n PAR_CardMonthInvalid: `Måned er ugyldig`,\r\n PAR_CardYearInvalid: `År er ugyldig`,\r\n PAR_CardCVCInvalid: `CVV-kode er ugyldig`,\r\n PAR_FieldRequired: `Skal udfyldes`,\r\n PAR_Cancel: `Annuller`,\r\n PAR_Pay: `Betal`,\r\n PAR_PaymentMethod: `Payment Methods`,\r\n PAR_Cardnumber: `Kortnummer`,\r\n PAR_MonthPlaceholder: `MM`,\r\n PAR_YearPlaceholder: `ÅÅ`,\r\n\r\n PFP_Header: `Hov! Der er desværre sket en fejl`,\r\n PFP_Info: `Og din ordre er IKKE gået igennem. Prøv venligst igen ved at klikke på knappen herunder. Der er ikke blevet trukket penge på din konto.`,\r\n PFP_TryAgain: `Prøv igen`,\r\n\r\n REP_Header: `Tak for din bestilling,`,\r\n REP_Comment: `herunder finder du din kvittering for din ordre.`,\r\n REP_DateRooms: `Rejsedato`,\r\n REP_Return: `Tilbage til hjemmeside`,\r\n REP_OrderId: `Ordrenummer`,\r\n REP_ReservationId: `Reservationsnummer`,\r\n REP_CustomerInfo: `Personlige oplysninger`,\r\n\r\n REP_Name: `Navn`,\r\n REP_PostCity: `Postnr & By`,\r\n REP_Phone: `Telefon`,\r\n REP_Address: `Adresse`,\r\n REP_Country: `Land`,\r\n REP_Email: `Email`,\r\n REP_Thanks: `Tak for din ordre`,\r\n REP_ThanksInfo: `Vi vil sende dig alle de oplysninger om kort tid.`,\r\n REP_ThanksPayment: `Din betaling er gennemført`,\r\n\r\n LOA_Addons: `Henter ekstra ydelser`,\r\n LOA_CustomerInfo: `Henter kunde informationer`,\r\n LOA_ActivatingCustomer: `Aktiver kunde`,\r\n LOA_Translations: `Henter oversættelser`,\r\n LOA_Configuration: `Indlæser konfiguration`,\r\n LOA_Availability: `Henter ledighed`,\r\n LOA_CreatingReservation: `Opretter reservation`,\r\n LOA_HotelInformation: `Indlæser hotel information`,\r\n LOA_Countries: `Henter lande`,\r\n LOA_PreparingPaymnent: `Forbereder betaling`,\r\n LOA_ApplyingPromo: `Indlæser rabatkode`,\r\n LOA_Rooms: `Indlæser værelser`,\r\n LOA_Rates: `Indlæser priser`,\r\n LOA_LoggingIn: `Logger ind`,\r\n LOA_SendingInformation: `Sender information`,\r\n\r\n COM_Continue: `Fortsæt`,\r\n COM_OK: `OK`,\r\n COM_Persons: `Personer`,\r\n COM_Guest_10: `Voksne`,\r\n COM_Guest_9: `Teenagere`,\r\n COM_Guest_7: `Baby`,\r\n COM_Guest_11: `Seniorer`,\r\n COM_Guest_8: `Børn`,\r\n COM_Adult: `Voksen`,\r\n COM_Child: `Barn`,\r\n COM_Room: `Værelse`,\r\n COM_Cabin: `Hytte`,\r\n COM_House: `Hus`,\r\n COM_Unit: `Enhed`,\r\n COM_Arrival: `Ankomst`,\r\n COM_Departure: `Afrejse`,\r\n COM_Promocode: `Rabatkode`,\r\n COM_Rooms: `Værelser`,\r\n COM_AddOns: `Ekstra ydelser`,\r\n COM_TotalGuests: `Antal gæster`,\r\n COM_Price: `Pris`,\r\n COM_TotalPrice: `Pris total`,\r\n COM_TotalPriceWithTransactionId: `I alt betalt med transaktionsnr.`,\r\n COM_TotalReservedWithTransactionId: `I alt er reserveret med transactionId`,\r\n COM_Close: `Luk`,\r\n COM_Back: `Tilbage`,\r\n COM_Error: `Info`,\r\n COM_Info: `Information`,\r\n COM_Confirm: `Bekræft`,\r\n COM_Package: `Pakke`,\r\n COM_SoldOutError: `Der er ikke nogle ledige værelser eller pakker på denne dag`,\r\n COM_SearchNew: `Ny søgning`,\r\n COM_TableReservation: `Table Reservation`,\r\n COM_TableNumberOfPersons: `Antall personer ved bordet`,\r\n COM_Guests: `Guests`,\r\n COM_TableChooseProduct: `Vælg dato og produkt`,\r\n COM_TablePlaceGuests: `Du mangler at placere`,\r\n COM_TableChooseProducts: `Vælg produkt(er)`,\r\n COM_TableNumberOfGuestsForProduct: `Antal gæster til dette produkt`,\r\n COM_TableBookingFlowAddProduct: `Ønsker du at lave en bord reservation på dit ophold?`,\r\n COM_TableIfNotPressContinue: `Ellers tryk fortsæt`,\r\n COM_AddToBasket: `Læg i kurv`,\r\n COM_AddedToBasket: `Tilføjet til kurv`,\r\n COM_Type: `Type`,\r\n COM_SeatingSoldOut: `Nothing available at the moment`,\r\n COM_Main: `Home`,\r\n COM_Conference: `Konference`,\r\n COM_Quantity: `Antal`,\r\n\r\n LFO_Email: `E-mail`,\r\n LFO_EmailRequried: `E-mail skal oplyses`,\r\n LFO_EmailInvalid: `E-mail er ikke korrekt`,\r\n LFO_Password: `Adgangskode`,\r\n LFO_PasswordRequried: `Adgangskode påkrævet`,\r\n LFO_ForgotPassword: `Kan du ikke tilgå din konto ?`,\r\n LFO_Login: `Log ind`,\r\n LFO_BackToLogin: `Tilbage til indlogning`,\r\n LFO_Send: `Send`,\r\n LFO_MessageSend: `Besked afsendt!`,\r\n LFO_LoginError: `Wrong email or password`,\r\n LFO_RecoveryError: `Loginoplysninger ugyldige`,\r\n\r\n SFO_ChooseHotel: `Vælg hotel`,\r\n SFO_ChooseHolidayResort: `Vores hoteller`,\r\n SFO_ChooseCenter: `Vores hoteller`,\r\n SFO_ChooseDepartment: `Vælg hotel`,\r\n SFO_ParamsHeader: `Vælg rejsedato`,\r\n SFO_Guests: `Gæster i værelse`,\r\n SFO_GuestsCabin: `Gæster i værelse`,\r\n SFO_GuestsHouse: `Gæster i værelse`,\r\n SFO_GuestsUnit: `Gæster i værelse`,\r\n SFO_AddRoom: `Flere værelser`,\r\n SFO_AddCabin: `Flere værelser`,\r\n SFO_AddHouse: `Flere værelser`,\r\n SFO_AddUnit: `Flere værelser`,\r\n SFO_BookStay: `Ophold`,\r\n SFO_BookEvent: `Event`,\r\n SFO_BookTakeAway: `Oplevelse`,\r\n SFO_BookTableReservation: `Oplevelse`,\r\n SFO_BookGiftcard: `Gavekort`,\r\n SFO_GiftcardMetaData: `Grunddata for dine gavekort`,\r\n SFO_ChooseGiftcard: `Vælg Gavekort`,\r\n SFO_NumberOfGiftcards: `Hvormange af de valgte gavekort vil du købe?`,\r\n SFO_GiftcardAmount: `Indtast beløb`,\r\n SFO_GiftcardEnterDetails: `Udfyld detaljer for dine gavekort`,\r\n SFO_ChooseGiftcardDescription: `Køb et gavekort til en du holder af`,\r\n SFO_GiftcardDetails: `Gavekort detaljer`,\r\n SFO_GiftcardTo: `Hvem er gavekortet til (valgfrit)`,\r\n SFO_GiftcardFrom: `Hvem er gavekortet fra (valgfrit)`,\r\n SFO_GiftcardMessage: `Skriv en hilsen (Maks 100 tegn) (valgfrit)`,\r\n SFO_BookArrangement: `Oplevelse`,\r\n SFO_BookConcert: `Oplevelse`,\r\n SFO_BookTableArangement: `Oplevelse`,\r\n SFO_BookTableEvent: `Oplevelse`,\r\n SFO_BordTakeAway: `Oplevelse`,\r\n SFO_BookTicket: `Oplevelse`,\r\n SFO_BookLecture: `Oplevelse`,\r\n SFO_BookTable: `Oplevelse`,\r\n SFO_BookSpa: `Spa`,\r\n SFO_BookExperience: `Oplevelse`,\r\n SFO_ChooseMonth: `Vælg Måned`,\r\n SFO_NoRooms: `Der blev ikke fundet nogle ledige værelser i det valgte tidsrum!`,\r\n SFO_MinLOS: `Den valgte periode kræver booking af minimum`,\r\n SFO_Nights: `nætter`,\r\n SFO_MaxLOS: `I den valgte periode er det maksimalt muligt at booke`,\r\n\r\n CAL_WeekStart: `1`,\r\n CAL_M01: `Januar`,\r\n CAL_M02: `Februar`,\r\n CAL_M03: `Marts`,\r\n CAL_M04: `April`,\r\n CAL_M05: `Maj`,\r\n CAL_M06: `Juni`,\r\n CAL_M07: `Juli`,\r\n CAL_M08: `August`,\r\n CAL_M09: `September`,\r\n CAL_M10: `Oktober`,\r\n CAL_M11: `November`,\r\n CAL_M12: `December`,\r\n CAL_D0: `Søndag`,\r\n CAL_D1: `Mandag`,\r\n CAL_D2: `Tirsdag`,\r\n CAL_D3: `Onsdag`,\r\n CAL_D4: `Torsdag`,\r\n CAL_D5: `Fredag`,\r\n CAL_D6: `Lørdag`,\r\n CAL_Selected: `Valgt`,\r\n CAL_Occupied: `lukket`,\r\n CAL_Arrival: `Lukket for ankomst`,\r\n CAL_Departure: `lukket`,\r\n CAL_Mon: `M`,\r\n CAL_Tirs: `T`,\r\n CAL_Ons: `O`,\r\n CAL_Tors: `T`,\r\n CAL_Fre: `F`,\r\n CAL_Lor: `L`,\r\n CAL_Sun: `S`,\r\n CAL_Available: `Ledigt`,\r\n CAL_NotPossible: `Ikke muligt`,\r\n\r\n BIN_ChangeDate: `Ret dato`,\r\n BIN_ChangeRoom: `Ret`,\r\n BIN_ChangeAddOns: `Ændre ekstra ydelser`,\r\n BIN_NoAddOns: `Ingen ekstra ydelser tilføjet`,\r\n BIN_AddOns: `Ekstra ydelser tilføjet`,\r\n BIN_Reservation: `Din Reservation`,\r\n BIN_Details: `Basis Detaljer`,\r\n BIN_RoomCount: `Værelser`,\r\n BIN_CabinCount: `Hytter`,\r\n BIN_HouseCount: `Huse`,\r\n BIN_UnitCount: `Enheder`,\r\n BIN_Roomtype: `Værelsestype`,\r\n BIN_Cabintype: `Værelsestype`,\r\n BIN_Housetype: `Værelsestype`,\r\n BIN_Unittype: `Værelsestype`,\r\n BIN_Packagetype: `Pakketype`,\r\n BIN_BasketEmpty: `Kurven er tom`,\r\n BIN_BasketGoToCheckout: `Gå til kassen`,\r\n\r\n EXC_EmptyBasket: `Basket must not be empty`,\r\n\r\n SEA_Date: `dato`,\r\n SEA_Time: `tid`,\r\n SEA_Quantity: `antal`,\r\n SEA_Skip: `Spring over`,\r\n SEA_ChooseEvent: `Vælg en oplevelse`,\r\n SEA_DescriptionStart: `Select`,\r\n SEA_DescriptionEnd: `below or date in the calendar`,\r\n SEA_SoldOut: `Alt er udsolgt for den valgte måned`,\r\n SEA_SoldOutContinue: `Tryk på Fortsæt for at springe over`,\r\n SEA_SeatingStandAloneTitle: `Vælg en dato eller en af de viste`,\r\n SEA_ResetCalendar: `Vis alle`,\r\n\r\n MAT_CALENDAR_Calendar_Label: `S`,\r\n MAT_CALENDAR_Close_Calendar_Label: `S`,\r\n MAT_CALENDAR_End_Date_Label: `S`,\r\n MAT_CALENDAR_Next_Month_Label: `S`,\r\n MAT_CALENDAR_Next_Multi_Year_Label: `S`,\r\n MAT_CALENDAR_Next_Year_Label: `S`,\r\n MAT_CALENDAR_Open_Calendar_Label: `S`,\r\n MAT_CALENDAR_Prev_Month_Label: `S`,\r\n MAT_CALENDAR_Prev_Multi_Year_Label: `S`,\r\n MAT_CALENDAR_Prev_Year_Label: `S`,\r\n MAT_CALENDAR_Start_Date_Label: `S`,\r\n MAT_CALENDAR_Switch_To_Month_View_Label: `S`,\r\n MAT_CALENDAR_Switch_To_Multi_Year_View_Label: `S`,\r\n};\r\n","import { Messages } from './index';\r\n\r\nexport const messages: Messages = {\r\n APA_CompanyLogin: `selskapet innlogging`,\r\n APA_Logout: `Logg ut`,\r\n APA_Welcome: `Hallo`,\r\n APA_ShowPromo: `Kampanjekode`,\r\n APA_PromoLabel: `Skriv inn kampanjekoden`,\r\n APA_Promo: `Kampanjekode`,\r\n APA_PromoSubmit: `Bruk`,\r\n APA_PromoChange: `endring`,\r\n APA_ActivateHead: `Aktiver pålogging`,\r\n APA_ActivateDesc: `Skriv inn passord for å aktivere pålogging for`,\r\n APA_Password: `Passord`,\r\n APA_ConfirmPassword: `bekreft passord`,\r\n APA_PasswordHasUpper: `Passordet må inneholde minst én stor bokstav (A-Z)`,\r\n APA_PasswordHasLower: `Passord må inneholde minst en liten bokstav (a-z)`,\r\n APA_PasswordHasNumber: `Passordet må inneholde minst ett tall (0-9)`,\r\n APA_PasswordLength8: `Passordet må inneholde minst 8 tegn`,\r\n APA_ConfirmPasswordEqualTo: `Passord stemmer ikke`,\r\n APA_Activate: `Aktiver`,\r\n APA_CustomerNotFound: `Beklager at vi ikke kan finne kundepost i ut database`,\r\n APA_ResetBasket: `Alt vil bli fjernet fra kurven. Er du sikker?`,\r\n APA_Address: `Adresse`,\r\n APA_Contact: `Kontakt`,\r\n APA_VatNumber: `CVR:`,\r\n APA_PromoMessageStart: `Kampagne koden`,\r\n APA_ValidTime: `Gyldigheds periode`,\r\n APA_PromoMessageEnd: `Koden er gyldig på de produkter der er markeret med en procentvis rabat`,\r\n APA_AQCDecription: `Aldersbeskrivelse`,\r\n APA_Year: `år`,\r\n APA_Book: `Bestill`,\r\n\r\n CPA_NothingAvailable_EmptyText: `Vennligst velg en ny dato nedenfor, eller gå tilbake og endre informasjonen fra det første skrittet`,\r\n CPA_NothingAvailable: `Det er ingen tilgjengelige rom som tilfredsstiller dine kriterier`,\r\n CPA_SoldOut: `Utsolgt`,\r\n CPA_CustomerInvalid: `Kunden er ikke gyldig`,\r\n CPA_PromoInvalid: `Kampanjekoden du skrev inn er ugyldig.`,\r\n CPA_PromoBetween: `Kampanjekoden du skrev inn er bare gyldig hvis oppholdet perioden er mellom:`,\r\n\r\n RPA_More: `Vis mer`,\r\n RPA_Select: `Å velge`,\r\n RPA_Selected: `valgt`,\r\n RPA_From: `Starter fra`,\r\n RPA_Image: `Ikke noe bilde`,\r\n RPA_Description: `Beskrivelse`,\r\n RPA_ChooseRoom: `Velg rom`,\r\n RPA_ChoosePackage: `Velg Pakke`,\r\n RPA_ChooseCabin: `Velg hytte`,\r\n RPA_ChooseHouse: `Velg hus`,\r\n RPA_ChooseUnit: `Velg enhet`,\r\n RPA_BackRate: `Velg en annen pakke`,\r\n RPA_MaxPersons: `Maksimalt antall personer`,\r\n RPA_ChooseYourRoom: `Velg rommet ditt`,\r\n RPA_ChooseYourCabin: `Velg hytta`,\r\n RPA_ChooseYourHouse: `Velg huset`,\r\n RPA_ChooseYourUnit: `Velg enheten din`,\r\n RPA_ChooseYourPackage: `Velg pakken`,\r\n\r\n APA_Services: `tjenester`,\r\n APA_Add: `Legg til`,\r\n APA_Added: `La til`,\r\n APA_Remove: `Fjerne`,\r\n APA_ContentDialog: `Velg antall personer og dager du vil ha tjenesten valgt. Mellom datoene`,\r\n APA_ChooseYourAddOns: `Velg ekstra kjøp`,\r\n APA_TotalPrice: `Totalkostnad`,\r\n APA_TotalInBasket: `stk, totalt`,\r\n APA_TotalOf: `Velg mengde av`,\r\n\r\n CUP_Header: `gjest detaljer`,\r\n CUP_Accept: `Aksepterer`,\r\n CUP_FName: `Navn`,\r\n CUP_FNameReq: `Fornavn er påkrevd`,\r\n CUP_FPhoneReq: `Mobilnummer er påkrevd`,\r\n CUP_LName: `Etternavn`,\r\n CUP_LNameReq: `Etternavn er påkrevd`,\r\n CUP_Address: `Adresse`,\r\n CUP_AddressReq: `Adresse er påkrevd`,\r\n CUP_ZipCode: `Postnummer`,\r\n CUP_ZipCodeReq: `Postnummer er nødvendig`,\r\n CUP_City: `By`,\r\n CUP_CityReq: `Byen er nødvendig`,\r\n CUP_Contry: `Land`,\r\n CUP_ContryReq: `Land er nødvendig`,\r\n CUP_Phone: `Mobiltelefonnummer`,\r\n CUP_PhoneReq: `Mobiltelefon er nødvendig`,\r\n CUP_Email: `e-post`,\r\n CUP_EmailRepeat: `Gjenta e-post`,\r\n CUP_EmailReq: `E-post er påkrevd`,\r\n CUP_EmailInvalid: `E-post er ikke gyldig`,\r\n CUP_Comment: `Kommentar`,\r\n CUP_NeedSubscribe: `Abonner på nyhetsbrev`,\r\n CUP_AcceptTerms: `Vilkår og betingelser`,\r\n CUP_BookNow: `Bestill nå!`,\r\n CUP_CancelPolicyHeader: `Avbestillingsforsikring`,\r\n CUP_CancelPolicyDesc: `Du har muligheten til å avbryte oppholdet ditt hvis du ikke kan gjøre det. Se mer informasjon om avbestillingsforsikring i vår booking forhold.`,\r\n CUP_CancelPolicyLabel: `Ja, jeg ønsker å kjøpe avbestillingsforsikring for`,\r\n CUP_GuestInfo: `Gjest informasjon`,\r\n CUP_BookingOverview: `Reserveringsoversikt`,\r\n CUP_PayWithGiftcard: `Å betale med gavekort`,\r\n CUP_PayWithGiftcardClick: `Klikk her`,\r\n CUP_PayWithGiftcardDescription: `Skriv inn koden din fra gavekortet ditt`,\r\n CUP_PayWithGiftcardError: `Gavekort er ikke aktive eller ble ikke funnet i systemet.`,\r\n CUP_PayWithGiftcardStatus: `Gavekort aktivt`,\r\n CUP_PayWithGiftcardDiscount: `Gavekortbeløp`,\r\n CUP_PayWithGiftcardHeader: `Gavekort`,\r\n CUP_PayWithGiftcardInformation: `Vil du løse inn et gavekort?`,\r\n CUP_PayWithGiftcardPlaceholder: `Gavekortkode`,\r\n CUP_PayWithGiftcardRedeem: `Løs inn`,\r\n CUP_BookingOverviewToPay: `Å betale`,\r\n\r\n PAL_GoToPayment: `Gå til betaling`,\r\n PAL_PaymentComplete: `Denne betalingen er fullført`,\r\n PAL_PaymentNotAvailable: `Betaling på denne reservation er ikke tilgængelig`,\r\n\r\n PAR_Payment: `innbetaling`,\r\n PAR_SeekAuthorization: `MERK: I feltene nedenfor, er beløpet vi trekke på kontoen din angitt på betalingen. Hvis 0 er angitt, vil vi bruke dine kredittkortopplysninger utelukkende for å garantere din reservasjon.`,\r\n PAR_TotalLabel: `Pris for bestillingen`,\r\n PAR_TotalPayLabel: `Pris å betale`,\r\n PAR_OBSLabel: `MERK: bli på siden til kvitteringssiden vises med et reservasjonsnummer Kostnaður at gjalda`,\r\n PAR_OBSLabelGiftcard: `MERK: bli på siden til kvitteringssiden vises med et ordrenummer`,\r\n PAR_FailedToPay: `Unnlatt å betale. Sjekk ditt kortnummer.`,\r\n PAR_CardInvalid: `Kortnummeret er ikke gyldig`,\r\n PAR_CardUnknown: `Korttype i ikke kjent`,\r\n PAR_CardMonthInvalid: `Måned er ugyldig`,\r\n PAR_CardYearInvalid: `Året er ugyldig`,\r\n PAR_CardCVCInvalid: `CVV-koden er ugyldig`,\r\n PAR_FieldRequired: `Dette feltet er obligatorisk`,\r\n PAR_Cancel: `Avbryt`,\r\n PAR_Pay: `Betale`,\r\n PAR_PaymentMethod: `Betalingsmetoder`,\r\n PAR_Cardnumber: `Kortnummer`,\r\n PAR_MonthPlaceholder: `MM`,\r\n PAR_YearPlaceholder: `ÅÅ`,\r\n\r\n PFP_Header: `Hov! Dessverre har oppstått en feil`,\r\n PFP_Info: `Og bestillingen har ikke gått gjennom. Vennligst prøv igjen ved å klikke på knappen nedenfor. Ingen penger har blitt trukket fra kontoen din.`,\r\n PFP_TryAgain: `Prøv igjen`,\r\n\r\n REP_Header: `Takk for din bestilling,`,\r\n REP_Comment: `Nedenfor vil du finne kvitteringen for bestillingen.`,\r\n REP_DateRooms: `Reisedato`,\r\n REP_Return: `Gå til nettsiden`,\r\n REP_OrderId: `Din ordrenummer`,\r\n REP_ReservationId: `Din reservasjon ID`,\r\n REP_CustomerInfo: `Personlig informasjon`,\r\n\r\n REP_Name: `Navn`,\r\n REP_PostCity: `ZipCode & City`,\r\n REP_Phone: `telefon`,\r\n REP_Address: `Adresse`,\r\n REP_Country: `Land`,\r\n REP_Email: `e-post`,\r\n REP_Thanks: `takk for din bestilling`,\r\n REP_ThanksInfo: `Vi vil sende deg all den informasjonen om kort tid.`,\r\n REP_ThanksPayment: `Vår betaling er fullført`,\r\n\r\n LOA_Addons: `Laster add-ons`,\r\n LOA_CustomerInfo: `Laster kundeinformasjon`,\r\n LOA_ActivatingCustomer: `aktivering kunde`,\r\n LOA_Translations: `Legge oversettelser`,\r\n LOA_Configuration: `Laster konfigurasjon`,\r\n LOA_Availability: `Laster tilgjengelighet`,\r\n LOA_CreatingReservation: `Opprette bestilling`,\r\n LOA_HotelInformation: `Laster informasjon`,\r\n LOA_Countries: `Legge land`,\r\n LOA_PreparingPaymnent: `forbereder betaling`,\r\n LOA_ApplyingPromo: `Bruk av kampanjekode`,\r\n LOA_Rooms: `Legge rom`,\r\n LOA_Rates: `Legge priser`,\r\n LOA_LoggingIn: `Logger inn`,\r\n LOA_SendingInformation: `sende informasjon`,\r\n\r\n COM_Continue: `Fortsette`,\r\n COM_OK: `OK`,\r\n COM_Persons: `Mennesker`,\r\n COM_Guest_10: `Voksne`,\r\n COM_Guest_9: `Teens`,\r\n COM_Guest_7: `spedbarn`,\r\n COM_Guest_11: `pensjonister`,\r\n COM_Guest_8: `barn`,\r\n COM_Adult: `Voksen`,\r\n COM_Child: `Barn`,\r\n COM_Room: `Rom`,\r\n COM_Cabin: `Hytte`,\r\n COM_House: `Hus`,\r\n COM_Unit: `Enhet`,\r\n COM_Arrival: `Ankomst`,\r\n COM_Departure: `Avgang`,\r\n COM_Promocode: `Rabattkode`,\r\n COM_Rooms: `Rom`,\r\n COM_AddOns: `Add-ons`,\r\n COM_TotalGuests: `antall gjester`,\r\n COM_Price: `Pris`,\r\n COM_TotalPrice: `Totalpris`,\r\n COM_TotalPriceWithTransactionId: `betalte totalt med transactionId`,\r\n COM_TotalReservedWithTransactionId: `reservert totalt med transactionId`,\r\n COM_Close: `Lukk`,\r\n COM_Back: `Tilbake`,\r\n COM_Error: `Info`,\r\n COM_Info: `Informasjon`,\r\n COM_Confirm: `Bekrefte`,\r\n COM_Package: `Pakke`,\r\n COM_SoldOutError: `Det er ingen tilgjengelige rom eller pakker for denne dagen`,\r\n COM_SearchNew: `Nytt søk`,\r\n COM_TableReservation: `Bordreservasjon`,\r\n COM_TableNumberOfPersons: `Antall personer ved bordet`,\r\n COM_Guests: `Gjestene`,\r\n COM_TableChooseProduct: `Velg dato og produkt`,\r\n COM_TablePlaceGuests: `Du må plassere`,\r\n COM_TableChooseProducts: `Velg produkt(er)`,\r\n COM_TableNumberOfGuestsForProduct: `Antall gjester for dette produktet`,\r\n COM_TableBookingFlowAddProduct: `Ønsker du å reservere bord på oppholdet ditt?`,\r\n COM_TableIfNotPressContinue: `Trykk ellers på fortsett`,\r\n COM_AddToBasket: `Annonse til kurven`,\r\n COM_AddedToBasket: `Lagt til i handlekurven`,\r\n COM_Type: `Type`,\r\n COM_SeatingSoldOut: `Ingenting tilgjengelig for øyeblikket`,\r\n COM_Main: `Hjemmeside`,\r\n COM_Conference: `Konference`,\r\n COM_Quantity: `Mengde`,\r\n\r\n LFO_Email: `e-post`,\r\n LFO_EmailRequried: `E-post er påkrevd`,\r\n LFO_EmailInvalid: `E-post er ikke gyldig`,\r\n LFO_Password: `Passord`,\r\n LFO_PasswordRequried: `Passord kreves`,\r\n LFO_ForgotPassword: `Får ikke tilgang til kontoen din?`,\r\n LFO_Login: `Logg Inn`,\r\n LFO_BackToLogin: `Tilbake til Logg inn`,\r\n LFO_Send: `Sende`,\r\n LFO_MessageSend: `Message sende!`,\r\n LFO_LoginError: `Feil e-post eller passord`,\r\n LFO_RecoveryError: `Påloggingsinformasjon ugyldig`,\r\n\r\n SFO_ChooseHotel: `Våre hoteller`,\r\n SFO_ChooseHolidayResort: `Våre Ferie resorts`,\r\n SFO_ChooseCenter: `Våre senter`,\r\n SFO_ChooseDepartment: `Velg Avdeling`,\r\n SFO_ParamsHeader: `Velg dato`,\r\n SFO_Guests: `Gjester i rommet`,\r\n SFO_GuestsCabin: `Gjester i Hytte`,\r\n SFO_GuestsHouse: `Gjester i Hus`,\r\n SFO_GuestsUnit: `Gjester i enhet`,\r\n SFO_AddRoom: `Legg rommet`,\r\n SFO_AddCabin: `Legg hytter`,\r\n SFO_AddHouse: `Legg hus`,\r\n SFO_AddUnit: `Legg enheter`,\r\n SFO_BookStay: `opphold`,\r\n SFO_BookEvent: `Event`,\r\n SFO_BookTakeAway: `Ta bort`,\r\n SFO_BookTableReservation: `Tabell reservasjon`,\r\n SFO_BookGiftcard: `Gavekort`,\r\n SFO_GiftcardMetaData: `Grunnleggende data for gavekortene dine`,\r\n SFO_ChooseGiftcard: `Velg gavekort`,\r\n SFO_NumberOfGiftcards: `Hvor mange av de valgte gavekortene vil du kjøpe?`,\r\n SFO_GiftcardAmount: `Tast inn beløp`,\r\n SFO_GiftcardEnterDetails: `Fyll ut detaljer for gavekortene dine`,\r\n SFO_ChooseGiftcardDescription: `Kjøp et gavekort til noen du bryr deg om`,\r\n SFO_GiftcardDetails: `Gavekortdetaljer`,\r\n SFO_GiftcardTo: `Hvem er gavekortet til (valgfritt)`,\r\n SFO_GiftcardFrom: `Hvem er gavekortet fra (valgfritt)`,\r\n SFO_GiftcardMessage: `Skriv en hilsen (maks 100 tegn) (valgfritt)`,\r\n SFO_BookArrangement: `Ordning`,\r\n SFO_BookConcert: `Konsert`,\r\n SFO_BookTableArangement: `Bord / arrangement`,\r\n SFO_BookTableEvent: `Bord / arrangement`,\r\n SFO_BordTakeAway: `Bord / ta bort`,\r\n SFO_BookTicket: `Billett`,\r\n SFO_BookLecture: `Foredrag`,\r\n SFO_BookTable: `Reservere et bord`,\r\n SFO_BookSpa: `Spa`,\r\n SFO_BookExperience: `Opplevelse`,\r\n SFO_ChooseMonth: `Velg måned`,\r\n SFO_NoRooms: `Ingen tilgjengelige rom funnet for den valgte perioden!`,\r\n SFO_MinLOS: `Den valgte perioden krever bestilling av minimum`,\r\n SFO_Nights: `netter`,\r\n SFO_MaxLOS: `I den valgte perioden er det mulig å bestille maks`,\r\n\r\n CAL_WeekStart: `1`,\r\n CAL_M01: `Januar`,\r\n CAL_M02: `Februar`,\r\n CAL_M03: `Mars`,\r\n CAL_M04: `April`,\r\n CAL_M05: `Mai`,\r\n CAL_M06: `Juni`,\r\n CAL_M07: `Juli`,\r\n CAL_M08: `August`,\r\n CAL_M09: `September`,\r\n CAL_M10: `Oktober`,\r\n CAL_M11: `November`,\r\n CAL_M12: `Desember`,\r\n CAL_D0: `Søndag`,\r\n CAL_D1: `Mandag`,\r\n CAL_D2: `Tirsdag`,\r\n CAL_D3: `Onsdag`,\r\n CAL_D4: `Torsdag`,\r\n CAL_D5: `Fredag`,\r\n CAL_D6: `Lørdag`,\r\n CAL_Selected: `valgt`,\r\n CAL_Occupied: `lukket`,\r\n CAL_Arrival: `stengt for ankomst`,\r\n CAL_Departure: `stengt for avgang`,\r\n CAL_Mon: `M`,\r\n CAL_Tirs: `T`,\r\n CAL_Ons: `O`,\r\n CAL_Tors: `T`,\r\n CAL_Fre: `F`,\r\n CAL_Lor: `L`,\r\n CAL_Sun: `S`,\r\n CAL_Available: `Tilgjengelig`,\r\n CAL_NotPossible: `Ikke mulig`,\r\n\r\n BIN_ChangeDate: `Endre dato`,\r\n BIN_ChangeRoom: `Prøve rom`,\r\n BIN_ChangeAddOns: `Endre add-ons`,\r\n BIN_NoAddOns: `Ingen tjenester lagt`,\r\n BIN_AddOns: `tjenester lagt`,\r\n BIN_Reservation: `Din reservasjon`,\r\n BIN_Details: `Grunnleggende detaljer`,\r\n BIN_RoomCount: `Rom`,\r\n BIN_CabinCount: `Hytter`,\r\n BIN_HouseCount: `Hus`,\r\n BIN_UnitCount: `Enheter`,\r\n BIN_Roomtype: `Romtype`,\r\n BIN_Cabintype: `Hyttetype`,\r\n BIN_Housetype: `Type hus`,\r\n BIN_Unittype: `Enhetstype`,\r\n BIN_Packagetype: `Pakke type`,\r\n BIN_BasketEmpty: `Kurven er tom`,\r\n BIN_BasketGoToCheckout: `Gå til utsjekk`,\r\n\r\n EXC_EmptyBasket: `Basket must not be empty`,\r\n\r\n SEA_Date: `dato`,\r\n SEA_Time: `tid`,\r\n SEA_Quantity: `nummer`,\r\n SEA_Skip: `Hopp over`,\r\n SEA_ChooseEvent: `Velg en opplevelse`,\r\n SEA_DescriptionStart: `Velg`,\r\n SEA_DescriptionEnd: `nedenfor eller dato i kalenderen`,\r\n SEA_SoldOut: `Velg en opplevelse`,\r\n SEA_SoldOutContinue: `Trykk på Fortsett for å hoppe over`,\r\n SEA_SeatingStandAloneTitle: `Velg en dato eller en av de som vises alternativer`,\r\n SEA_ResetCalendar: `Vis alle`,\r\n\r\n MAT_CALENDAR_Calendar_Label: `S`,\r\n MAT_CALENDAR_Close_Calendar_Label: `S`,\r\n MAT_CALENDAR_End_Date_Label: `S`,\r\n MAT_CALENDAR_Next_Month_Label: `S`,\r\n MAT_CALENDAR_Next_Multi_Year_Label: `S`,\r\n MAT_CALENDAR_Next_Year_Label: `S`,\r\n MAT_CALENDAR_Open_Calendar_Label: `S`,\r\n MAT_CALENDAR_Prev_Month_Label: `S`,\r\n MAT_CALENDAR_Prev_Multi_Year_Label: `S`,\r\n MAT_CALENDAR_Prev_Year_Label: `S`,\r\n MAT_CALENDAR_Start_Date_Label: `S`,\r\n MAT_CALENDAR_Switch_To_Month_View_Label: `S`,\r\n MAT_CALENDAR_Switch_To_Multi_Year_View_Label: `S`,\r\n};\r\n","import { Messages } from './index';\r\n\r\nexport const messages: Messages = {\r\n APA_CompanyLogin: `INLOGGNING FÖRETAG`,\r\n APA_Logout: `Logga ut`,\r\n APA_Welcome: `Hej`,\r\n APA_ShowPromo: `Kampanjkod`,\r\n APA_PromoLabel: `Ange kampanjkod`,\r\n APA_Promo: `Kampanjkod`,\r\n APA_PromoSubmit: `Använd`,\r\n APA_PromoChange: `Ändra`,\r\n APA_ActivateHead: `Aktivera inloggning`,\r\n APA_ActivateDesc: `Skriv in lösenord för att aktivera inloggning för`,\r\n APA_Password: `Lösenord`,\r\n APA_ConfirmPassword: `Bekräfta lösenord`,\r\n APA_PasswordHasUpper: `Lösenordet måste innehålla minst en stor bokstav (A-Z).`,\r\n APA_PasswordHasLower: `Lösenordet måste innehålla minst en liten bokstav (a-z).`,\r\n APA_PasswordHasNumber: `Lösenord måste innehålla minst en siffra (0-9).`,\r\n APA_PasswordLength8: `Lösenord måste innehålla minst 8 tecken.`,\r\n APA_ConfirmPasswordEqualTo: `Lösenordet är felaktigt`,\r\n APA_Activate: `Aktivera`,\r\n APA_CustomerNotFound: `Kunden hittas ej`,\r\n APA_ResetBasket: `Kundkorgen kommer att tömmas`,\r\n APA_Address: `Adress`,\r\n APA_Contact: `Kontakta`,\r\n APA_VatNumber: `Org.nr:`,\r\n APA_PromoMessageStart: `Kampanjkod`,\r\n APA_ValidTime: `Giltig period`,\r\n APA_PromoMessageEnd: `Koden gäller på de produkter markerade med en procentuell rabatt`,\r\n APA_AQCDecription: `Åldersbeskrivning`,\r\n APA_Year: `år`,\r\n APA_Book: `Boka`,\r\n\r\n CPA_NothingAvailable_EmptyText: `Vänligen välj datum nedan`,\r\n CPA_NothingAvailable: `Det finns inga lediga rum som uppfyller dina kriterier`,\r\n CPA_SoldOut: `Utsålt`,\r\n CPA_CustomerInvalid: `Okänd kundprofil`,\r\n CPA_PromoInvalid: `Kampanjkoden är inte giltig`,\r\n CPA_PromoBetween: `Kampanjkoden du angav är endast giltig för vistelse mellan:`,\r\n\r\n RPA_More: `Visa mer`,\r\n RPA_Select: `Välj`,\r\n RPA_Selected: `Vald`,\r\n RPA_From: `Från`,\r\n RPA_Image: `Ingen bild`,\r\n RPA_Description: `Beskrivning`,\r\n RPA_ChooseRoom: `Välj rum`,\r\n RPA_ChoosePackage: `Välj Paket`,\r\n RPA_ChooseCabin: `Välj stuga`,\r\n RPA_ChooseHouse: `Välj hus`,\r\n RPA_ChooseUnit: `Välj enhet`,\r\n RPA_BackRate: `Välj ett annat paket`,\r\n RPA_MaxPersons: `Max antal personer`,\r\n RPA_ChooseYourRoom: `Välj rum`,\r\n RPA_ChooseYourCabin: `Välj stuga`,\r\n RPA_ChooseYourHouse: `Välj hus`,\r\n RPA_ChooseYourUnit: `Välj enhet`,\r\n RPA_ChooseYourPackage: `Välj paket`,\r\n\r\n APA_Services: `Tillägg`,\r\n APA_Add: `Lägg till`,\r\n APA_Added: `Tillagt`,\r\n APA_Remove: `Ta bort`,\r\n APA_ContentDialog: `Välj antal personer och de dagar du önskar tillägget. Mellan datumen`,\r\n APA_ChooseYourAddOns: `Tillägg`,\r\n APA_TotalPrice: `Total kostnad`,\r\n APA_TotalInBasket: `1 st, totalt`,\r\n APA_TotalOf: `Välj antal av`,\r\n\r\n CUP_Header: `Köparens information`,\r\n CUP_Accept: `Acceptera`,\r\n CUP_FName: `Namn`,\r\n CUP_FNameReq: `Ange förnamn`,\r\n CUP_FPhoneReq: `Ange mobilnummer`,\r\n CUP_LName: `Efternamn`,\r\n CUP_LNameReq: `Ange efternamn`,\r\n CUP_Address: `Adress`,\r\n CUP_AddressReq: `Ange adress`,\r\n CUP_ZipCode: `Postnummer`,\r\n CUP_ZipCodeReq: `Ange postnummer`,\r\n CUP_City: `Ort`,\r\n CUP_CityReq: `Ange ort`,\r\n CUP_Contry: `Land`,\r\n CUP_ContryReq: `Land gav ett fel, vänligen kontrollera`,\r\n CUP_Phone: `Mobilnummer`,\r\n CUP_PhoneReq: `Ange mobilnummer`,\r\n CUP_Email: `E-post`,\r\n CUP_EmailRepeat: `Upprepa E-post`,\r\n CUP_EmailReq: `Ange e-post`,\r\n CUP_EmailInvalid: `E-post ogiltig`,\r\n CUP_Comment: `Notering`,\r\n CUP_NeedSubscribe: `Prenumerera på nyhetsbrev`,\r\n CUP_AcceptTerms: `Jag har läst och godkänner villkoren`,\r\n CUP_BookNow: `Boka nu`,\r\n CUP_CancelPolicyHeader: `Avbokningsskydd`,\r\n CUP_CancelPolicyDesc: `Du har möjlighet att avboka din vistelse om du får förhinder. Se ytterligare upplysningar gällande avbokningsskydd i våra bokningsvillkor.`,\r\n CUP_CancelPolicyLabel: `Ja, jag vill gärna lägga till avbokningsskydd för`,\r\n CUP_GuestInfo: `Gästinformation`,\r\n CUP_BookingOverview: `Bokningsöversikt`,\r\n CUP_PayWithGiftcard: `För att betala med presentkort`,\r\n CUP_PayWithGiftcardClick: `Klicka här`,\r\n CUP_PayWithGiftcardDescription: `Ange din kod från ditt presentkort`,\r\n CUP_PayWithGiftcardError: `Presentkort är inte aktiva eller kunde inte hittas i systemet.`,\r\n CUP_PayWithGiftcardStatus: `Presentkort aktivt`,\r\n CUP_PayWithGiftcardDiscount: `Presentkortbelopp`,\r\n CUP_PayWithGiftcardHeader: `Presentkort`,\r\n CUP_PayWithGiftcardInformation: `Vill du lösa in ett presentkort?`,\r\n CUP_PayWithGiftcardPlaceholder: `Presentkortskod`,\r\n CUP_PayWithGiftcardRedeem: `Lös in`,\r\n CUP_BookingOverviewToPay: `Att betala`,\r\n\r\n PAL_GoToPayment: `Gå till betalning`,\r\n PAL_PaymentComplete: `Länken har upphört att gälla. Vänligen kontakta`,\r\n PAL_PaymentNotAvailable: `Betaling på denne reservation er ikke tilgængelig`,\r\n\r\n PAR_Payment: `Betalning`,\r\n PAR_SeekAuthorization: `Din kreditkortsinformation kommer att användas som betalning, alternativt som säkerhet för köp.`,\r\n PAR_TotalLabel: `Pris för din beställning`,\r\n PAR_TotalPayLabel: `Pris att betala`,\r\n PAR_OBSLabel: `VIKTIGT: Stäng inte detta fönster förrän kvittosidan dyker upp, där du kan se ditt beställnings-/reservationsnummer!`,\r\n PAR_OBSLabelGiftcard: `OBS: stanna kvar på sidan tills kvittosidan visas med ett beställningsnummer!`,\r\n PAR_FailedToPay: `Det gick inte att betala. Kontrollera ditt kortnummer.`,\r\n PAR_CardInvalid: `Kortnummer är ogiltigt`,\r\n PAR_CardUnknown: `Korttyp i inte känd`,\r\n PAR_CardMonthInvalid: `Månad är ogiltig`,\r\n PAR_CardYearInvalid: `År är ogiltig`,\r\n PAR_CardCVCInvalid: `CVV-kod är ogiltig`,\r\n PAR_FieldRequired: `Detta fält är tvingande`,\r\n PAR_Cancel: `Annullera`,\r\n PAR_Pay: `Betala`,\r\n PAR_PaymentMethod: `Betalningsmetoder`,\r\n PAR_Cardnumber: `Kortnummer`,\r\n PAR_MonthPlaceholder: `MM`,\r\n PAR_YearPlaceholder: `ÅÅ`,\r\n\r\n PFP_Header: `Oj! Det har inträffat ett fel`,\r\n PFP_Info: `Och din beställning inte har gått igenom. Försök igen genom att klicka på knappen nedan. Inga pengar har dragits från ditt konto.`,\r\n PFP_TryAgain: `Försök igen`,\r\n\r\n REP_Header: `Tack för din beställning,`,\r\n REP_Comment: `nedan hittar du ditt kvitto på din beställning.`,\r\n REP_DateRooms: `Ankomstdag`,\r\n REP_Return: `Tillbaka till hemsidan`,\r\n REP_OrderId: `Beställningsnummer`,\r\n REP_ReservationId: `Beställningsnummer`,\r\n REP_CustomerInfo: `Personuppgifter`,\r\n\r\n REP_Name: `Namn`,\r\n REP_PostCity: `Postnummer ort`,\r\n REP_Phone: `Telefon`,\r\n REP_Address: `Adress`,\r\n REP_Country: `Land`,\r\n REP_Email: `E-post`,\r\n REP_Thanks: `Tack för din beställning`,\r\n REP_ThanksInfo: `Du kommer att få en bekräftelse via e-post inom kort.`,\r\n REP_ThanksPayment: `Vår betalning är klar`,\r\n\r\n LOA_Addons: `Hämtar tillval`,\r\n LOA_CustomerInfo: `Hämtar kundinformation`,\r\n LOA_ActivatingCustomer: `Aktivera kund`,\r\n LOA_Translations: `Hämtar översättningar`,\r\n LOA_Configuration: `Läser in konfiguration`,\r\n LOA_Availability: `Hämtar ledighet`,\r\n LOA_CreatingReservation: `Skapar reservation`,\r\n LOA_HotelInformation: `Läser in hotellinformation`,\r\n LOA_Countries: `Laddar länder`,\r\n LOA_PreparingPaymnent: `Förbereder betalning`,\r\n LOA_ApplyingPromo: `Läser in rabattkod`,\r\n LOA_Rooms: `Laddar rum`,\r\n LOA_Rates: `Laddar priser`,\r\n LOA_LoggingIn: `Loggar in`,\r\n LOA_SendingInformation: `Skickar information`,\r\n\r\n COM_Continue: `Fortsätt`,\r\n COM_OK: `OK`,\r\n COM_Persons: `Personer`,\r\n COM_Guest_10: `Vuxna`,\r\n COM_Guest_9: `Ungdom`,\r\n COM_Guest_7: `Spädbarn`,\r\n COM_Guest_11: `Senior`,\r\n COM_Guest_8: `Barn`,\r\n COM_Adult: `vuxen`,\r\n COM_Child: `Barn`,\r\n COM_Room: `Rum`,\r\n COM_Cabin: `Stuga`,\r\n COM_House: `Hus`,\r\n COM_Unit: `Enhet`,\r\n COM_Arrival: `Ankomst`,\r\n COM_Departure: `Avresa`,\r\n COM_Promocode: `Kampanjkod`,\r\n COM_Rooms: `Rum`,\r\n COM_AddOns: `Tillval`,\r\n COM_TotalGuests: `Antal gäster`,\r\n COM_Price: `Pris`,\r\n COM_TotalPrice: `Totalbelopp`,\r\n COM_TotalPriceWithTransactionId: `Totalt betalt med transaktionsnr.`,\r\n COM_TotalReservedWithTransactionId: `Totalt reserverat med transaktionsnr.`,\r\n COM_Close: `Stäng`,\r\n COM_Back: `Tillbaka`,\r\n COM_Error: `Meddelande`,\r\n COM_Info: `Information`,\r\n COM_Confirm: `Bekräfta`,\r\n COM_Package: `Paket`,\r\n COM_SoldOutError: `Det finns inga tillgängliga rum eller paket för denna dag`,\r\n COM_SearchNew: `Ny sökning`,\r\n COM_TableReservation: `Bordsreservation`,\r\n COM_TableNumberOfPersons: `Antal personer`,\r\n COM_Guests: `Gäster`,\r\n COM_TableChooseProduct: `Välj datum och produkt`,\r\n COM_TablePlaceGuests: `‍`,\r\n COM_TableChooseProducts: `Välj produkt/produkter`,\r\n COM_TableNumberOfGuestsForProduct: `Antal gäster`,\r\n COM_TableBookingFlowAddProduct: `Vill du boka bord för din vistelse?`,\r\n COM_TableIfNotPressContinue: `Annars välj fortsätt`,\r\n COM_AddToBasket: `Lägg till`,\r\n COM_AddedToBasket: `Tillagt`,\r\n COM_Type: `Typ`,\r\n COM_SeatingSoldOut: `Inget tillgängligt just nu`,\r\n COM_Main: `Hem`,\r\n COM_Conference: `Konference`,\r\n COM_Quantity: `Kvantitet`,\r\n\r\n LFO_Email: `E-post`,\r\n LFO_EmailRequried: `Ange e-post`,\r\n LFO_EmailInvalid: `E-post ogiltig`,\r\n LFO_Password: `Lösenord`,\r\n LFO_PasswordRequried: `Lösenord krävs`,\r\n LFO_ForgotPassword: `Kommer du inte åt ditt konto?`,\r\n LFO_Login: `Logga in`,\r\n LFO_BackToLogin: `Tillbaka till inloggning`,\r\n LFO_Send: `Skicka`,\r\n LFO_MessageSend: `Meddelande sänt!`,\r\n LFO_LoginError: `Felaktig e-post eller lösenord`,\r\n LFO_RecoveryError: `Inloggningsuppgifter ogiltiga`,\r\n\r\n SFO_ChooseHotel: `Våra hotell`,\r\n SFO_ChooseHolidayResort: `Våra Semesterort`,\r\n SFO_ChooseCenter: `Våra Centrum`,\r\n SFO_ChooseDepartment: `Välj Avdelning`,\r\n SFO_ParamsHeader: `Välj datum`,\r\n SFO_Guests: `Antal gäster i rum`,\r\n SFO_GuestsCabin: `Antal gäster i stuga`,\r\n SFO_GuestsHouse: `Antal gäster i Hus`,\r\n SFO_GuestsUnit: `Antal gäster i enhet`,\r\n SFO_AddRoom: `Boka fler rum`,\r\n SFO_AddCabin: `Boka fler stugor`,\r\n SFO_AddHouse: `Boka fler hus`,\r\n SFO_AddUnit: `Boka fler enheter`,\r\n SFO_BookStay: `vistelse`,\r\n SFO_BookEvent: `Event`,\r\n SFO_BookTakeAway: `Take Away`,\r\n SFO_BookTableReservation: `Bordsreservation`,\r\n SFO_BookGiftcard: `Presentkort`,\r\n SFO_GiftcardMetaData: `Grunddata för dina presentkort`,\r\n SFO_ChooseGiftcard: `Välj Presentkort`,\r\n SFO_NumberOfGiftcards: `Hur många av de valda presentkorten vill du köpa?`,\r\n SFO_GiftcardAmount: `Ange belopp`,\r\n SFO_GiftcardEnterDetails: `Fyll i detaljer för dina presentkort`,\r\n SFO_ChooseGiftcardDescription: `Köp ett presentkort till någon du bryr dig om`,\r\n SFO_GiftcardDetails: `Beskrivning av presentkortet`,\r\n SFO_GiftcardTo: `Vem är presentkortet till? (Valfritt)`,\r\n SFO_GiftcardFrom: `Vem är presentkortet från? (Valfritt)`,\r\n SFO_GiftcardMessage: `Skriv en hälsning (Max 100 tecken - Valfritt)`,\r\n SFO_BookArrangement: `Arrangemang`,\r\n SFO_BookConcert: `Konsert`,\r\n SFO_BookTableArangement: `Bord/Arrangemang`,\r\n SFO_BookTableEvent: `Bord/Upplevelser`,\r\n SFO_BordTakeAway: `Bord / Take away`,\r\n SFO_BookTicket: `Biljetter`,\r\n SFO_BookLecture: `Föreläsning`,\r\n SFO_BookTable: `Boka bord`,\r\n SFO_BookSpa: `Spa`,\r\n SFO_BookExperience: `Upplevelse`,\r\n SFO_ChooseMonth: `Välj månad`,\r\n SFO_NoRooms: `Inga tillgängliga rum hittades för den valda tidsperioden!`,\r\n SFO_MinLOS: `Den valda perioden kräver en bokning av minst`,\r\n SFO_Nights: `nätter`,\r\n SFO_MaxLOS: `Under den valda perioden är det möjligt att boka maximalt`,\r\n\r\n CAL_WeekStart: `1`,\r\n CAL_M01: `Januari`,\r\n CAL_M02: `Februari`,\r\n CAL_M03: `Mars`,\r\n CAL_M04: `April`,\r\n CAL_M05: `Maj`,\r\n CAL_M06: `Juni`,\r\n CAL_M07: `Juli`,\r\n CAL_M08: `Augusti`,\r\n CAL_M09: `September`,\r\n CAL_M10: `Oktober`,\r\n CAL_M11: `November`,\r\n CAL_M12: `December`,\r\n CAL_D0: `Söndag`,\r\n CAL_D1: `Måndag`,\r\n CAL_D2: `Tisdag`,\r\n CAL_D3: `Onsdag`,\r\n CAL_D4: `Torsdag`,\r\n CAL_D5: `Fredag`,\r\n CAL_D6: `Lördag`,\r\n CAL_Selected: `Valt datum`,\r\n CAL_Occupied: `Fullbokat/Stängt`,\r\n CAL_Arrival: `Stängt för ankomst`,\r\n CAL_Departure: `Stängt för avresa`,\r\n CAL_Mon: `M`,\r\n CAL_Tirs: `T`,\r\n CAL_Ons: `O`,\r\n CAL_Tors: `T`,\r\n CAL_Fre: `F`,\r\n CAL_Lor: `L`,\r\n CAL_Sun: `S`,\r\n CAL_Available: `Tillgängliga`,\r\n CAL_NotPossible: `Inte möjligt`,\r\n\r\n BIN_ChangeDate: `Byt datum`,\r\n BIN_ChangeRoom: `Ändra`,\r\n BIN_ChangeAddOns: `Ändra tillval`,\r\n BIN_NoAddOns: `Inga tillval är tillagda`,\r\n BIN_AddOns: `Tillval är tillagt`,\r\n BIN_Reservation: `Din bokning`,\r\n BIN_Details: `Din bokning`,\r\n BIN_RoomCount: `Rum`,\r\n BIN_CabinCount: `Hytter`,\r\n BIN_HouseCount: `Hus`,\r\n BIN_UnitCount: `Enheter`,\r\n BIN_Roomtype: `Rumstyp`,\r\n BIN_Cabintype: `Hyttyp`,\r\n BIN_Housetype: `Yyp av hus`,\r\n BIN_Unittype: `Enhetstyp`,\r\n BIN_Packagetype: `Paket typ`,\r\n BIN_BasketEmpty: `Korgen är tom`,\r\n BIN_BasketGoToCheckout: `Gå till kassan`,\r\n\r\n EXC_EmptyBasket: `Kundkorgen är tom`,\r\n\r\n SEA_Date: `datum`,\r\n SEA_Time: `tid`,\r\n SEA_Quantity: `Antal`,\r\n SEA_Skip: `Skip`,\r\n SEA_ChooseEvent: `Välj en upplevelse`,\r\n SEA_DescriptionStart: `Välj`,\r\n SEA_DescriptionEnd: `nedan eller datum i kalendern`,\r\n SEA_SoldOut: `Allt är tyvärr slutsålt den valda månaden`,\r\n SEA_SoldOutContinue: `Tryck på fortsätt för att hoppa över`,\r\n SEA_SeatingStandAloneTitle: `Välj ett datum eller ett av de som visas alternativ`,\r\n SEA_ResetCalendar: `Visa alla`,\r\n\r\n MAT_CALENDAR_Calendar_Label: `S`,\r\n MAT_CALENDAR_Close_Calendar_Label: `S`,\r\n MAT_CALENDAR_End_Date_Label: `S`,\r\n MAT_CALENDAR_Next_Month_Label: `S`,\r\n MAT_CALENDAR_Next_Multi_Year_Label: `S`,\r\n MAT_CALENDAR_Next_Year_Label: `S`,\r\n MAT_CALENDAR_Open_Calendar_Label: `S`,\r\n MAT_CALENDAR_Prev_Month_Label: `S`,\r\n MAT_CALENDAR_Prev_Multi_Year_Label: `S`,\r\n MAT_CALENDAR_Prev_Year_Label: `S`,\r\n MAT_CALENDAR_Start_Date_Label: `S`,\r\n MAT_CALENDAR_Switch_To_Month_View_Label: `S`,\r\n MAT_CALENDAR_Switch_To_Multi_Year_View_Label: `S`,\r\n};\r\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class MatDatepickerIntl {\n /**\n * Stream that emits whenever the labels here are changed. Use this to notify\n * components if the labels have changed after initialization.\n */\n readonly changes: Subject = new Subject();\n\n /** A label for the calendar popup (used by screen readers). */\n calendarLabel = 'Kalender';\n\n /** A label for the button used to open the calendar popup (used by screen readers). */\n openCalendarLabel = 'Åben kalender';\n\n /** Label for the button used to close the calendar popup. */\n closeCalendarLabel = 'Luk kalender';\n\n /** A label for the previous month button (used by screen readers). */\n prevMonthLabel = 'Forrige månede';\n\n /** A label for the next month button (used by screen readers). */\n nextMonthLabel = 'Næste månede';\n\n /** A label for the previous year button (used by screen readers). */\n prevYearLabel = 'Forrige år';\n\n /** A label for the next year button (used by screen readers). */\n nextYearLabel = 'Næste år';\n\n /** A label for the previous multi-year button (used by screen readers). */\n prevMultiYearLabel = 'Forrige 24 år';\n\n /** A label for the next multi-year button (used by screen readers). */\n nextMultiYearLabel = 'Næste 24 år';\n\n /** A label for the 'switch to month view' button (used by screen readers). */\n switchToMonthViewLabel = 'Vælg dato';\n\n /** A label for the 'switch to year view' button (used by screen readers). */\n switchToMultiYearViewLabel = 'Vælg måned og år';\n\n /** A label for the first date of a range of dates (used by screen readers). */\n startDateLabel = 'Start dato';\n\n /** A label for the last date of a range of dates (used by screen readers). */\n endDateLabel = 'Slut dato';\n\n /** Formats a range of years (used for visuals). */\n formatYearRange(start: string, end: string): string {\n return `${start} \\u2013 ${end}`;\n }\n\n /** Formats a label for a range of years (used by screen readers). */\n formatYearRangeLabel(start: string, end: string): string {\n return `${start} til ${end}`;\n }\n}\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic()\n .bootstrapModule(AppModule)\n .catch((err) => console.error(err));\n","export const theme = (color: string) => {\r\n return `h2,.h2{color:${color}}.btn.btn-primary{border-color:${color};background-color:${color}}.btn.btn-primary:active,.btn.btn-primary.active{color:${color}}@media only screen and (min-width:992px){.btn.btn-primary:hover{color:${color}}}.btn.btn-primary-outline{color:${color};border-color:${color}}.btn.btn-primary-outline:active,.btn.btn-primary-outline.active{background-color:${color}}@media only screen and (min-width:992px){.btn.btn-primary-outline:hover{background-color:${color}}}.calendar-legend .legend-icon.selected{background:${color}}.calendar-day:hover:not(.disabled) .calendar-day-text::before{border-color:${color}}.calendar-day.selected::before{background-color:${color}}.calendar-day.selected-first .calendar-day-text::after,.calendar-day.selected-last .calendar-day-text::after{background-color:${color}}.calendar-day.marked .calendar-day-text::after{border-color:${color};background-color:#FFF}.calendar-day.marked-first .calendar-day-text::before,.calendar-day.marked-last .calendar-day-text::before{border-color:${color}}.room-page .expandable-media-list .card.active::after{border-top-color:${color}}.step-list .step-list-item.active{border-color:${color}}nav{background-color:${color}}.text-primary,mark{color:${color}}.with-toggle.focusable:focus-within,.with-toggle:hover,.with-toggle.active{color:${color};border-color:${color}}.expandable-media-list .card.active{outline-color:${color}}.a-dropdown .a-dropdown-container:focus .a-dropdown-toggle,.a-dropdown .a-dropdown-container:hover .a-dropdown-toggle{color:${color}}.a-dropdown.show .a-dropdown-value .a-dropdown-toggle{border-color:${color}}.list-group .list-group-item.action.active,.list-group .list-group-item.action:hover{background:${color}}`;\r\n}\r\n","var map = {\n\t\"./af\": 58685,\n\t\"./af.js\": 58685,\n\t\"./ar\": 254,\n\t\"./ar-dz\": 4312,\n\t\"./ar-dz.js\": 4312,\n\t\"./ar-kw\": 32614,\n\t\"./ar-kw.js\": 32614,\n\t\"./ar-ly\": 18630,\n\t\"./ar-ly.js\": 18630,\n\t\"./ar-ma\": 28674,\n\t\"./ar-ma.js\": 28674,\n\t\"./ar-sa\": 49032,\n\t\"./ar-sa.js\": 49032,\n\t\"./ar-tn\": 24730,\n\t\"./ar-tn.js\": 24730,\n\t\"./ar.js\": 254,\n\t\"./az\": 53052,\n\t\"./az.js\": 53052,\n\t\"./be\": 60150,\n\t\"./be.js\": 60150,\n\t\"./bg\": 63069,\n\t\"./bg.js\": 63069,\n\t\"./bm\": 13466,\n\t\"./bm.js\": 13466,\n\t\"./bn\": 18516,\n\t\"./bn-bd\": 90557,\n\t\"./bn-bd.js\": 90557,\n\t\"./bn.js\": 18516,\n\t\"./bo\": 26273,\n\t\"./bo.js\": 26273,\n\t\"./br\": 9588,\n\t\"./br.js\": 9588,\n\t\"./bs\": 19815,\n\t\"./bs.js\": 19815,\n\t\"./ca\": 83331,\n\t\"./ca.js\": 83331,\n\t\"./cs\": 21320,\n\t\"./cs.js\": 21320,\n\t\"./cv\": 72219,\n\t\"./cv.js\": 72219,\n\t\"./cy\": 68266,\n\t\"./cy.js\": 68266,\n\t\"./da\": 66427,\n\t\"./da.js\": 66427,\n\t\"./de\": 67435,\n\t\"./de-at\": 52871,\n\t\"./de-at.js\": 52871,\n\t\"./de-ch\": 12994,\n\t\"./de-ch.js\": 12994,\n\t\"./de.js\": 67435,\n\t\"./dv\": 82357,\n\t\"./dv.js\": 82357,\n\t\"./el\": 95649,\n\t\"./el.js\": 95649,\n\t\"./en-au\": 59961,\n\t\"./en-au.js\": 59961,\n\t\"./en-ca\": 19878,\n\t\"./en-ca.js\": 19878,\n\t\"./en-gb\": 3924,\n\t\"./en-gb.js\": 3924,\n\t\"./en-ie\": 70864,\n\t\"./en-ie.js\": 70864,\n\t\"./en-il\": 91579,\n\t\"./en-il.js\": 91579,\n\t\"./en-in\": 30940,\n\t\"./en-in.js\": 30940,\n\t\"./en-nz\": 16181,\n\t\"./en-nz.js\": 16181,\n\t\"./en-sg\": 44301,\n\t\"./en-sg.js\": 44301,\n\t\"./eo\": 85291,\n\t\"./eo.js\": 85291,\n\t\"./es\": 54529,\n\t\"./es-do\": 53764,\n\t\"./es-do.js\": 53764,\n\t\"./es-mx\": 12584,\n\t\"./es-mx.js\": 12584,\n\t\"./es-us\": 63425,\n\t\"./es-us.js\": 63425,\n\t\"./es.js\": 54529,\n\t\"./et\": 35203,\n\t\"./et.js\": 35203,\n\t\"./eu\": 70678,\n\t\"./eu.js\": 70678,\n\t\"./fa\": 83483,\n\t\"./fa.js\": 83483,\n\t\"./fi\": 96262,\n\t\"./fi.js\": 96262,\n\t\"./fil\": 52521,\n\t\"./fil.js\": 52521,\n\t\"./fo\": 34555,\n\t\"./fo.js\": 34555,\n\t\"./fr\": 63131,\n\t\"./fr-ca\": 88239,\n\t\"./fr-ca.js\": 88239,\n\t\"./fr-ch\": 21702,\n\t\"./fr-ch.js\": 21702,\n\t\"./fr.js\": 63131,\n\t\"./fy\": 267,\n\t\"./fy.js\": 267,\n\t\"./ga\": 23821,\n\t\"./ga.js\": 23821,\n\t\"./gd\": 71753,\n\t\"./gd.js\": 71753,\n\t\"./gl\": 4074,\n\t\"./gl.js\": 4074,\n\t\"./gom-deva\": 92762,\n\t\"./gom-deva.js\": 92762,\n\t\"./gom-latn\": 5969,\n\t\"./gom-latn.js\": 5969,\n\t\"./gu\": 82809,\n\t\"./gu.js\": 82809,\n\t\"./he\": 45402,\n\t\"./he.js\": 45402,\n\t\"./hi\": 315,\n\t\"./hi.js\": 315,\n\t\"./hr\": 10410,\n\t\"./hr.js\": 10410,\n\t\"./hu\": 38288,\n\t\"./hu.js\": 38288,\n\t\"./hy-am\": 67928,\n\t\"./hy-am.js\": 67928,\n\t\"./id\": 71334,\n\t\"./id.js\": 71334,\n\t\"./is\": 86959,\n\t\"./is.js\": 86959,\n\t\"./it\": 34864,\n\t\"./it-ch\": 51124,\n\t\"./it-ch.js\": 51124,\n\t\"./it.js\": 34864,\n\t\"./ja\": 36141,\n\t\"./ja.js\": 36141,\n\t\"./jv\": 29187,\n\t\"./jv.js\": 29187,\n\t\"./ka\": 42136,\n\t\"./ka.js\": 42136,\n\t\"./kk\": 94332,\n\t\"./kk.js\": 94332,\n\t\"./km\": 18607,\n\t\"./km.js\": 18607,\n\t\"./kn\": 84305,\n\t\"./kn.js\": 84305,\n\t\"./ko\": 70234,\n\t\"./ko.js\": 70234,\n\t\"./ku\": 16003,\n\t\"./ku.js\": 16003,\n\t\"./ky\": 75061,\n\t\"./ky.js\": 75061,\n\t\"./lb\": 32786,\n\t\"./lb.js\": 32786,\n\t\"./lo\": 66183,\n\t\"./lo.js\": 66183,\n\t\"./lt\": 50029,\n\t\"./lt.js\": 50029,\n\t\"./lv\": 24169,\n\t\"./lv.js\": 24169,\n\t\"./me\": 68577,\n\t\"./me.js\": 68577,\n\t\"./mi\": 68177,\n\t\"./mi.js\": 68177,\n\t\"./mk\": 50337,\n\t\"./mk.js\": 50337,\n\t\"./ml\": 65260,\n\t\"./ml.js\": 65260,\n\t\"./mn\": 52325,\n\t\"./mn.js\": 52325,\n\t\"./mr\": 14695,\n\t\"./mr.js\": 14695,\n\t\"./ms\": 75334,\n\t\"./ms-my\": 37151,\n\t\"./ms-my.js\": 37151,\n\t\"./ms.js\": 75334,\n\t\"./mt\": 63570,\n\t\"./mt.js\": 63570,\n\t\"./my\": 97963,\n\t\"./my.js\": 97963,\n\t\"./nb\": 88028,\n\t\"./nb.js\": 88028,\n\t\"./ne\": 86638,\n\t\"./ne.js\": 86638,\n\t\"./nl\": 50302,\n\t\"./nl-be\": 66782,\n\t\"./nl-be.js\": 66782,\n\t\"./nl.js\": 50302,\n\t\"./nn\": 33501,\n\t\"./nn.js\": 33501,\n\t\"./oc-lnc\": 50563,\n\t\"./oc-lnc.js\": 50563,\n\t\"./pa-in\": 50869,\n\t\"./pa-in.js\": 50869,\n\t\"./pl\": 65302,\n\t\"./pl.js\": 65302,\n\t\"./pt\": 49687,\n\t\"./pt-br\": 74884,\n\t\"./pt-br.js\": 74884,\n\t\"./pt.js\": 49687,\n\t\"./ro\": 79107,\n\t\"./ro.js\": 79107,\n\t\"./ru\": 33627,\n\t\"./ru.js\": 33627,\n\t\"./sd\": 30355,\n\t\"./sd.js\": 30355,\n\t\"./se\": 83427,\n\t\"./se.js\": 83427,\n\t\"./si\": 11848,\n\t\"./si.js\": 11848,\n\t\"./sk\": 54590,\n\t\"./sk.js\": 54590,\n\t\"./sl\": 20184,\n\t\"./sl.js\": 20184,\n\t\"./sq\": 56361,\n\t\"./sq.js\": 56361,\n\t\"./sr\": 78965,\n\t\"./sr-cyrl\": 81287,\n\t\"./sr-cyrl.js\": 81287,\n\t\"./sr.js\": 78965,\n\t\"./ss\": 25456,\n\t\"./ss.js\": 25456,\n\t\"./sv\": 70451,\n\t\"./sv.js\": 70451,\n\t\"./sw\": 77558,\n\t\"./sw.js\": 77558,\n\t\"./ta\": 51356,\n\t\"./ta.js\": 51356,\n\t\"./te\": 73693,\n\t\"./te.js\": 73693,\n\t\"./tet\": 21243,\n\t\"./tet.js\": 21243,\n\t\"./tg\": 42500,\n\t\"./tg.js\": 42500,\n\t\"./th\": 55768,\n\t\"./th.js\": 55768,\n\t\"./tk\": 77761,\n\t\"./tk.js\": 77761,\n\t\"./tl-ph\": 35780,\n\t\"./tl-ph.js\": 35780,\n\t\"./tlh\": 29590,\n\t\"./tlh.js\": 29590,\n\t\"./tr\": 33807,\n\t\"./tr.js\": 33807,\n\t\"./tzl\": 93857,\n\t\"./tzl.js\": 93857,\n\t\"./tzm\": 60654,\n\t\"./tzm-latn\": 8806,\n\t\"./tzm-latn.js\": 8806,\n\t\"./tzm.js\": 60654,\n\t\"./ug-cn\": 30845,\n\t\"./ug-cn.js\": 30845,\n\t\"./uk\": 19232,\n\t\"./uk.js\": 19232,\n\t\"./ur\": 47052,\n\t\"./ur.js\": 47052,\n\t\"./uz\": 77967,\n\t\"./uz-latn\": 32233,\n\t\"./uz-latn.js\": 32233,\n\t\"./uz.js\": 77967,\n\t\"./vi\": 98615,\n\t\"./vi.js\": 98615,\n\t\"./x-pseudo\": 12320,\n\t\"./x-pseudo.js\": 12320,\n\t\"./yo\": 31313,\n\t\"./yo.js\": 31313,\n\t\"./zh-cn\": 64490,\n\t\"./zh-cn.js\": 64490,\n\t\"./zh-hk\": 55910,\n\t\"./zh-hk.js\": 55910,\n\t\"./zh-mo\": 98262,\n\t\"./zh-mo.js\": 98262,\n\t\"./zh-tw\": 44223,\n\t\"./zh-tw.js\": 44223\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;","var map = {\n\t\"./locale-da-DK\": 92393,\n\t\"./locale-da-DK.ts\": 92393,\n\t\"./locale-de-DE\": 67536,\n\t\"./locale-de-DE.ts\": 67536,\n\t\"./locale-en-GB\": 42168,\n\t\"./locale-en-GB.ts\": 42168,\n\t\"./locale-fo-FO\": 9997,\n\t\"./locale-fo-FO.ts\": 9997,\n\t\"./locale-is-IS\": 60757,\n\t\"./locale-is-IS.ts\": 60757,\n\t\"./locale-kl-GL\": 8673,\n\t\"./locale-kl-GL.ts\": 8673,\n\t\"./locale-nn-NO\": 35999,\n\t\"./locale-nn-NO.ts\": 35999,\n\t\"./locale-sv-SE\": 50379,\n\t\"./locale-sv-SE.ts\": 50379\n};\n\n\nfunction webpackAsyncContext(req) {\n\treturn webpackAsyncContextResolve(req).then(__webpack_require__);\n}\nfunction webpackAsyncContextResolve(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(() => {\n\t\tif(!__webpack_require__.o(map, req)) {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t}\n\t\treturn map[req];\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.resolve = webpackAsyncContextResolve;\nwebpackAsyncContext.id = 66691;\nmodule.exports = webpackAsyncContext;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["AsyncSubject","lastValueFrom","LogLevel","LogService","constructor","Instance","next","info","encodeURI","window","location","href","Using","action","logger","addClient","client","clients","push","trace","msg","data","log","Trace","debug","Debug","Information","warn","Warning","error","Error","fatal","Critical","level","entry","date","Date","JSON","parse","stringify","forEach","factory","providedIn","ElementRef","ErrorHandler","TemplateRef","ActivatedRoute","NavigationEnd","Router","combineLatest","first","map","ApplicationStateService","BasketService","ConfigService","CustomerService","HotelService","Loader","Locale","LocaleService","PromotionService","TrackingService","AppErrorHandler","Messenger","Step","StepList","DateHelper","NavigationHelper","DesignConfiguration","i0","ctx_r20","ctx_r28","ctx_r30","ctx_r32","ctx_r34","ctx_r36","ctx_r38","ctx_r49","ctx_r57","ctx_r59","ctx_r61","ctx_r77","ctx_r80","ctx_r84","ctx_r86","ctx_r88","ctx_r102","ctx_r107","ctx_r120","ctx_r123","ctx_r133","ctx_r135","ctx_r137","ctx_r139","ctx_r141","ctx_r143","ctx_r154","ctx_r162","ctx_r164","ctx_r166","ctx_r181","ctx_r184","ctx_r188","ctx_r190","ctx_r192","ctx_r196","ctx_r198","ctx_r203","message_r205","message_r212","message_r216","_r218","message_r234","AppComponent","config","router","navigationHelper","route","hotelService","basketService","localeService","promotionService","loader","customerService","stepList","messenger","errorHandler","activatedRoute","designConfig","applicationState","trackingService","customer$","step$","locale$","hotelCode$","pipe","customer","step","locale","hotelCode","logo","Search","hasError","Promise","resolve","undefined","canChangePromo","Package","AddOn","Customer","canChangeCustomer","showBasket","hotel","GetECommerceDepartmentInformation","cultures","find","culture","Code","getVersion","promocode$","promotionInvalid","errors","subscribe","err","messageErrorTempalte","message","isSoldOutError","show","text","close","goToUrl","CustomLogoRedirectURL","hideAll","events","val","pageView","urlAfterRedirects","ngOnInit","ListenToRouteChange","setTimeout","getSearchParameters","queryParams","snapshot","applyLanguage","PrimaryLangID","applyTheme","applyPromocode","PromotionCode","checkForCustomerToken","customerToken","ApplicationLogo","loadNetsScript","searchParams","params","arrival","FromUtcDate","stay","rooms","BookingFlow","RateCode","CurrentHotelCode","using","BuildApplicationState","isPaymentLink","hotels","GetECommerceDepartmentsInformation","FooterInfo","getLocale","HotelBasketInfo","node","document","createElement","getAppSettings","src","NetsCheckoutScript","type","async","charset","getElementsByTagName","appendChild","basket","get","ttt","showMobileNavigationFooter","url","includes","showLinkbar","showLoginPromotion","showMobileContinue","bookings","length","getCustomerEmailByToken","token","getCustomerByToken","translations$","t","APA_CustomerNotFound","activateCustomer","password","activate","onLocaleSelect","setLocale","onPromoSubmit","showPromoPopup","value","promoInfo","getPromotionStatus","promoCodeStartDate","StayFromDate","toString","promoCodeEndDate","StayToDate","promoCodeStartMonth","getTranslatedMonth","getMonth","promoCodeEndMonth","messageSuccess","onShowPromoPopupClick","BasketClick","hideMobileMenu","showOrHideBasket","onClosePromoPopup","onShowLoginPopupClick","confirmResetAndRunAction","showLoginPopup","onShowLoginPopupClose","onLogoutClick","logout","seatingLink","continue","HotelCode","ArrivalDate","toServerDateFormatString","LengthOfStay","giftcardLink","tableReservationLink","conferenceBookingLink","showMobileMenu","clickLocale","menuClick","logoClicked","basketBadgeNumberSet","navigateToPage","ratesClick","roomClick","goBack","scrollTo","left","top","behavior","goHome","updateGiftCard","giftcards","Giftcards","item","TotalPrice","Count","Price","set","continueMobileNavigationbar","filter","booking","HasPromotionForCustomer","messageConfirmResetTemplate","confirm","navigate","BuildQueryParams","cancel","lang","getCultures","determineLocale","GB","promocode","messageActiveAccount","email","f","valid","form","replaceUrl","relativeTo","queryParamsHandling","Object","keys","controls","key","control","markAsTouched","selectors","viewQuery","ctx","EventEmitter","BookingService","$event","ctx_r7","ctx_r2","ctx_r8","GiftcardFormComponent","bookingService","toggleGiftcardBox","giftcardNotFound","giftcardClicked","giftcardCode","applyGiftcard","res","getGiftcardInformation","RemainingAmount","IsActive","giftcardInformation","Amount","Name","Valid","Number","giftcardInformationEvent","emit","inputs","hasGiftcard","currency","outputs","ngContentSelectors","decls","vars","consts","template","ctx_r13","ctx_r17","ctx_r24","ctx_r27","message_r28","LoginFormComponent","onRecoverClick","recovery","onBackToLoginClick","onLoginFormSubmit","login","trim","formSubmit","onRecoveryFormSubmit","resetCustomerByEmail","showMessageSendMessage","messageSendTemplate","PromoFormComponent","getPromocode","promo","onPromoChange","toUpperCase","onCloseClick","closeForm","onSubmit","e","preventDefault","stopPropagation","TypeError","basketContent","OriginalPrice","RoomGuests","environment","DataConfigService","dataConfigService","version","getCurrentFavicon","getConfiguration","AppSettings","production","urlMustBeModified","WidgetHandlerUrl","testBaseUrl","BookingServiceUrl","CultureHandlerUrl","CustomerServiceUrl","getCustomerParams","CustomerParams","getLoggingParams","Logging","LoggingServiceUrl","getPaymentMethods","PaymentMethods","getInitialSearchParams","InitialSearchParams","getSearchParams","SearchParams","getGaParams","GaParams","getDefaultRoomGuests","applyStyles","styles","styleElement","createTextNode","head","applyFavicon","path","link","getFaviconElement","setAttribute","defaultFavicon","getVersionAsNumber","replace","getElementById","getAttribute","AddPixel","elem","body","HttpClient","InMemoryCache","http","configUrl","configCache","getOrCreateAsync","BehaviorSubject","StorageClient","CountryService","localStorage","defaultCustomer","Id","Company","updateInfo","Info","getCustomer","response","ECommerceDataProvider","mapCustomer","PaymentRequired","post","langCode","r","CustomerId","Mustpayonline","FirstName","split","LastName","Email","EMail","ZipCode","Address1","Address2","City","Country","Phone","CompanyId","CompanyName","CountryCode","CountryName","Default","Meta","Title","DataHotelService","configService","meta","title","initializeImportantDateToApplicationState","currentHotel","Settings","ReceiptUrl","CustomReceiptRedirectURL","LogoUrl","AnimateBackground","AnimatedBackground","MandatoryEmail","MandatoryPhone","MaxAQC","BackGroundimage","Image","Logo","UseGiftcard","UseGiftcardFrom","UseGiftcardTo","UseGiftcardMessage","UseTableReservation","InclueTableReservationBookingFlow","IncludeTableReservationInBookingFlow","InclueSeatingBookingFlow","IncludeSeatingsInBookingFlow","UseSpectraOnlineBooking","PayWithGiftcard","UseSeatings","UseSeating","UseNavbarLinks","ShowNavbarLinks","DesignPackage","UseConferenceModule","ApplicationColor","CustomColor","ApplicationColorTextIcon","CustomColorTextIcon","UsePromotion","HeaderInjectText","UseExtraServices","UseSpectraOnlineBookingMenuPoint","UseSeatingMenuPoint","UseTableReservationMenuPoint","UseGiftcardMenuPoint","UseConferenceBookingMenuPoint","Favicon","buildLabels","buildApplicationFont","injectHeadTagFromCustomerPortal","setTitle","CustomPageTitle","getHotelConfiguration","UseNetsEasy","Platform","UseNetAxept","AcceptedCards","HotelCurrency","Currency","NetsPaymentEnabled","DibsState","Dibs","none","disabled","toInject","addTag","name","content","departmentCache","endpoint","getBaseUrl","GetECommerceRoomInfo","roomCode","encodedRoomCode","encodeURIComponent","GetECommerceRateInfo","rateCode","encodedRateCode","IsSeatingsAvailable","IsTablesAvailable","GetStayAvailability","fromDate","toDate","companyId","definedRateCode","serverFromDate","serverToDate","GetECommerceSeatings","distinctByDate","GetECommerceSeating","characteristics","GetECommerceSeatingPortalInfo","seatingCode","bookingflow","GetECommerceTablePortalInfo","GetECommerceConferenceRoomsInfo","GetECommerceConferenceRoomInfo","GetECommerceExtraServiceInfo","itemNumber","ratePlan","roomType","GetECommerceExtraServices","adultCount","agecategory1count","agecategory2count","agecategory3count","agecategory4count","baseData","aqcCounts","productCodes","GetECommerceSeatingsAvailableMonths","getTableAvailability","departure","guestCount","bookingFlow","payAmountWithGiftcard","model","GetSpectraRoomInfo","fromdate","todate","rateplan","guests","language","FromDate","ToDate","RoomCode","Guests","LanguageCode","GetSpectraRateInfo","GetSpectraCancellationprotection","GetCompanyAgreementDiscount","fontMap","selectedFont","UIFonts","ApplicationFont","hotelLabelMap","selectedHotelLabel","HotelLabel","eventLabelMap","selectedEventLabel","EventLabel","roomLabelMap","RoomLabel","RoomsLabel","GuestInRoomLabel","ChooseYourRoom","MoreRoomLabel","ChooseRoomLabel","RoomTypeLabel","selectedRoomLabel","appSettings","all","dataProvider","dataHotelService","GetECommerceSeatingsMonths","GetRoomAvailability","GetEcommerceSeating","GetCancellationProtection","from","Subject","shareReplay","switchMap","SupportedLocales","getIsoFromLocale","DateAdapter","CssClasses","DK","DE","FO","IS","GL","SE","NO","translations","dateAdapter","_locale$","LoadTranslations","alert","StoredLocale","locales","failedCultureCodes","c","ToLocale","ISOCode","CssClass","urlLocale","prefferedLocales","getPrefferedLocales","prefferedLocale","backendLanguage","getBackendLocale","getBrowserLocales","n","navigator","userLanguage","languages","Array","concat","l","storedLocale","browserLocales","supportedLocale","substring","cultureCode","PopulateTranslations","reduce","previousValue","currentValue","messages","_a","sessionStorage","OriginEnum","PaymentService","applicationService","makeNetsEasyPaymentUrl","origin","resGuid","reservation","giftcardNumber","paymentFlow","endDate","PaymentFlowToUse","FromAspDate","Origin","PaymentLink","makeNetAxeptPaymentUrl","startupPayment","GiftCard","ReservationId","ReservationGuid","sessionReservation","getReservationOrFail","p","open","HostedPaymentPageUrl","ex","giftcardEasyInfo","PaymentUrl","GiftcardPayment","PaymentFlowEnum","ReservationService","createReservation","information","needSubscribe","useCancelationInsurance","comment","isAgent","giftcardPayment","initialSearchParams","needUpdate","customerId","companyAgreements","isPaymentEnabled","seatings","Bookings","Seating","modiDate","seating","total","seatCode","SeatCode","time","Time","seatrate","SeatRate","seatGuests","SeatGuest","services","AddOns","addOn","serv","Dates","ConvertToServerDate","service","count","selectedCount","price","toAspString","to","timeFrom","timeTo","serviceCode","ServiceId","serviceId","request","seats","hasPromotion","hasPromocodePromotion","room","guestName","Arrival","addDays","Stay","aqcs","Categories","arr","aqc","Persons","GetGuest","Guest","invBlockCode","useCancelPolicy","promotionData","promotionCode","discount","customerRateId","x","RatePlanCode","isCustomer","bookingAdmin","address","city","country","firstName","lastName","mobilePhone","phone","postal","NeedUpdate","userData","CompanyAddress1","CompanyAddress2","CompanyCity","CompanyCountryCode","CompanyCountryName","CompanyPhone","CompanyZipCode","CustomerContactId","GetTotal","CancelationInsurance","isHotelDepartment","IsHotelDepartment","payment","merchant","MerchantID","MerchantId","transactionId","isOnlySeating","Reservation","ErrorText","Success","Math","abs","reservationId","bookingCode","result","PaymentDue","cancellationFee","paid","paidWithGiftcard","Ticket","guest","GetReservation","SpectraApiUrl","PaymentFlow","CancellationProtectionAmount","AlreadyPaidAmount","ReservationNumber","Roomstays","FromValues","Year","Month","Day","Departure","RoomTypeName","GuestName","ExtraServices","es","ser","Quantity","TotalAmount","ServiceName","priceIncluded","serviceType","ServiceType","ServiceDate","customerNumber","ReservationName","CancelReservation","delete","PlaceGiftcardOrderAxept","giftcardCommandModel","BuildGiftcardCommandModel","PlaceGiftcardOrderEasy","GetGiftcardInformation","catch","RegisterGiftcardPayment","orderId","BuildReservationTypeForGiftcard","paidAmount","reservationType","giftcard","cardName","FullPayment","RegisterPayment","paymentId","SendNotification","prepare","includeServices","calculateTotalPriceForGiftcards","sum","addOnsSum","calculateTotalPriceForSeating","mainWebSiteOrigin","languageCode","order","AcceptUrl","CancelUrl","PaymentCancelUrl","PreferredCulture","Buyer","PhoneNo","Surname","Address","recipient","Adress","Message","giftcardOrderItems","PricePerPiece","card","txtTo","GuestInformation","ToName","txtFrm","FromName","txtMessage","GiftcardMessage","showPrice","OrderItems","pdfCards","Recipient","amount","seat","DataPromotionService","dataPromotionService","getValue","FacebookPixelClientService","initFacebookPixel","page","withFacebookPixel","facebookPixel","addToCart","category","entityType","content_ids","content_type","contents","id","quantity","revenue","item_price","transaction","handler","facebookPixelAccountCode","FacebookPixelAccountCode","googleAnalytics","InitFacebookPixelScript","accountCode","w","fbq","callMethod","apply","arguments","queue","_fbq","loaded","firstScript","parentNode","insertBefore","GoogleAnalyticsClientService","applicationstate","initGoogleAnalytics","withGoogleAnalytics","gtag","page_location","items","item_name","removeFromCart","roomName","rateName","transaction_id","affiliation","item_id","item_category","toFixed","RevenueForExtraservices","serviceName","googleAnalyticsAccountCode","GoogleAnalyticsAccountCode","InitGoogleAnalyticsScript","GoogleAnalyticsObject","dataLayer","append","GoogleHotelAdsClientService","IsGoogleHotelAdsEnabled","GoogleHotelAdsId","axel","random","arrivalDate","departureDate","arrivalDateString","format","departureDateString","lengthOfStay","daysBetween","imageSourceString","TrackingClientCartItem","TrackingClientPurchase","TrackingClientViewCart","TrackingClientViewItem","GoogleTagManagerClientService","initGoogleTagManager","ecommerceAddToCart","cartItem","withGoogleTagManger","event","ecommerce","_b","ecommerceRemoveFromCart","ecommercePurchase","purchase","ecommerceViewItem","ecommerceViewCart","ecommerceBeginCheckout","m","products","googleTagManager","googleTagManagerAccountCode","GoogleTagManagerAccountCode","InitGoogleTagManagerScript","getTime","SpectraAdsClientService","UseSpectraAdwordsScript","cart","MapRoomsToPurchaseItems","MapServicesToPurchaseItems","flatMap","MapSeatsToPurchaseItems","MapGiftCardsToPurchaseItems","MapFromReservation","ecommerceBeginCheckoutFromReservation","ecommercePurchaseFromReservation","reservationService","getReciept","reciept","updateSessionReservation","updateSessionGiftcard","giftcardInfo","usedGiftcard","getSessionGiftcard","getReservation","completePayment","createGiftcardReservation","giftCardCode","cancelPayment","failPayment","buildReservationTypeForGiftcard","registerPayment","sendNotification","paymentEnabled","bookingInformation","BaseLoader","ls","transparent","HttpHeaders","HttpParams","LogEntry","dayjs","ActionStack","GuidHelper","SpectraLogLevel","ServerLogClientService","NewGuid","allowedLogLevel","min","minLogLevel","logLevel","setLogLevel","clear","sessionId","clientLog","stack","addEntry","FromSpectraLogLevel","entries","slice","ClientLogSize","publish","appName","host","substr","eventLog","lastEvent","ToSpectraLogLevel","appCodeName","appVersion","platform","userAgent","javaEnabled","cookieEnabled","cpuClass","onLine","headers","responseType","console","Notice","Warn","Fatal","init","waitForPrevAction","pushAndWait","lifeTime","Map","cache","acRoute","storeSearchParams","prev","foundIndex","findIndex","collectSearchParams","clearBasket","obejct","splice","reset","checkUrlForParamater","param","nav","nextPage","nextMobilePage","resetNextPage","isNextpageEmpty","getRouteParam","paramValue","requestedValue","paramsSubscription","unsubscribe","getCountries","COUNTRIES","getCountry","code","AreaCode","message_r1","LoaderComponent","message$","messages$","every","addMessage","hide","timeout","messageIndex","indexOf","tap","ctx_r6","MessengerComponent","el","focus","ngAfterViewChecked","focusFirstMessage","onOverlayClick","nativeElement","querySelector","preventScroll","Observable","delay","StepListComponent","Payment","Complete","Steps","steps$","BuildSteps","ngOnDestroy","completeIndex","steps","i","AddStep","active","complete","ChangeDetectorRef","animate","state","style","transition","trigger","ctx_r18","ctx_r21","ctx_r23","AddOnCardModalComponent","cdRef","seatingFlow","ngAfterViewInit","messageLongDescriptionRef","height","getBoundingClientRect","messageLongDescriptionShowAnimation$","detectChanges","animateOpenDescription","openDescription","descriptionAnimationEvent","triggerName","toState","phaseName","showDescriptionBackdrop","moment","ctx_r11","ctx_r15","AddOnCardComponent","totalAmount","addOnInformation","addOnItem","setMaxHeight","isMaxHeight","onClick","calcValidDays","syncedRooms","syncedPricing","syncBasket","buildDateStringForContentDialog","messageAddOnDialog","stopScrolling","totalAddOnInformation$","guestIncrement","day","guestSelectCount","maxGuestCount","newGuestCount","guestDecrement","accept","onContentDialogSubmit","roomAddOns","days","dates","setUTCHours","toISOString","maxCount","bookingAddon","roomAddOn","itemSelect","DepartueDate","arrivalName","ArrivalMonthName","departureName","DepartueMonthName","inBasket","some","b","a","basketInfo","removeAll","removeAddOn","newBookings","newAddOn","addOnInBasket","onlySeating","roomId","basketAddOn","basketDate","d","setUTCDate","getDate","isEqual","weekDayName","GetTranslatedWeekDay","getDay","minGuestCount","utc","monthToAdd","setUTCMonth","dayCheck","dateModel","GuestType","ctx_r5","AddOnComponent","getBasketOrFail","addOns$","customerId$","loadAddOns","addOns","onMoveToNextClick","prepareNavigation","addOnsAvailable","getBasket","applyBasket","onItemSelect","addOnUpdates","addOnUpdate","addOnIndex","getAqcCounts","counts","adults","countByGuestType","children","infants","seniors","teenagers","getAqcCountsBasketSeatings","basketSeatings","AQC","translation","EXC_EmptyBasket","addonsArray","Seatings","aqcCountsBasketSeatings","SeatId","fill","v","idx","Adult","Senior","cat1","UnknownType1","cat2","Child","cat3","Infant","extraServiceInfos","addonArray","bookingIndex","addon","existingAddon","extraServiceInfo","sort","SortIndex","SearchComponent","ConferenceSearchComponent","ctx_r10","ctx_r12","ctx_r22","ConferenceDetailsComponent","classList","remove","backgroundImage","ConferenceRoomCode","conferenceRoomInfo","selectedImage","ImageOfRoom1","buildCalendarModel","newImageClick","image","nextMonth","currentDate","addMonth","prevMonth","lastDay","getLastDateOfMonth","firstDay","getFirstDateOfMonth","dayCounter","currentMonth","currentYear","getFullYear","dummyDaysAdded","status","calculateStatus","dayStatus","weekDay","daysToSubract","calculateDaysToSubstract","daysToReach","dummyday","invalid","calendarDates","runOut","dateClick","showCalendar","startDate","ParseHotelCode","conferenceRoomCode","ParseConferenceRoomCode","single","ArrivalFullYear","DepartueFullYear","create","ctx_r0","ConferenceRoomsComponent","buildConferenceUIModel","galone","FromPrice","Gallery","Selected","MaxPers","onRoomClick","buildConferenceRateUIModel","rateData","Description","ctx_r16","message_r24","message_r31","ctx_r40","ctx_r42","localeSerive","designconfig","canUseModule","buildAQCArray","addPageBackground","loadHotels","conferenceRooms","number","guestCountValues","onHotelChange","hotelChange","applyHotelChange","onGuestChange","personDropdown","selectedGuestCount","onFormSubmit","resetAllSelectedDates","selected","clickedDate","endMonth","startMonth","counter","dateToMark","conferenceRoomClick","distinctUntilChanged","ctx_r85","ctx_r99","ctx_r101","ctx_r148","ctx_r150","ctx_r152","ctx_r161","ctx_r163","_r41","ctx_r165","message_r167","CustomerComponent","countryService","paymentService","loadCountries","isKnownCustomer","getCancellationprotection","PaymentlinkCallBack","showSubscribeCheckbox","ShowSubscribeCheckbox","loadHotel","isCustomerInfoEditable","UseLogin","hasAddons","has","hasRooms","RoomName","hasSeatings","hasTableReservation","TableSeatings","hasGiftCard","repeatEmailvalid","ReturnFromOnlySeating","showGuestCountry","ShowGuestCountry","information$","defaultCountryCode","calculatePrices","DefaultCountryField","midDate","month","year","getTimeFromUtcDate","tempLogo","contentDialogHeader","RemoveCheckoutButton","calculatedCancellationFee","isValid","isSubmitting","isGiftcardReservation","subtractGiftcard","NoPayment","GiftCardNumber","onUseCancelationInsuranceChange","onNeedSubscribeChange","onAcceptTermsChange","acceptTerms","onCommentChange","onRepeatEmailChange","onShowTermsClick","terms","messageHotelTermsTempalte","html","setGiftcardInformationModel","rate","TicketTotal","SinglePrice","SeatingPlanName","table","Total","giftCard","RateName","RateDescription","cancellationPolicyFee","max","cancellationprotection","Percentage","CancellationPolicyServicesIncluded","MinimumAmount","UseCancelPolicy","ctx_r4","GiftcardDetailsComponent","extractGiftcardsFromBasket","useFrom","useTo","useMessage","moveNextClicked","priceChanged","invalidValues","ctx_r25","message_r29","GiftcardComponent","getCardInfos","then","isDataAvailable","buildSelectedCards","giftcardToBasketArray","continueActive","cards","getGiftConfiguration","y","giftcardCounter","addGiftcardToBasket","guestInformation","giftcardConfiguration","SendPDF","PdfTemplateContent","PdfTemplateStyling","giftcardToBasket","GiftConfiguration","CustomPrice","ConferenceRateCode","scroll","mouseEnter","ShowDescription","mouseLeave","ParseRooms","ParseSingle","ctx_r46","LandingPageComponent","catchUrlParams","buildHotelPickerData","buildLandingpageTiles","tiles","tileID","moduleType","bookRooms","lable","sortIndex","SortIndexSpectraOnlineBooking","packages","bookPackages","anySeatings","SortIndexSeating","tableReservation","SortIndexTableReservation","SortIndexGiftCard","tile","Single","picker","hotelImage","chooseHotel","deselectAllHotels","PaymentFailedComponent","cancelReservation","of","ctx_r29","ctx_r31","_r27","ctx_r72","message_r75","PaymentLinkComponent","redicrectToRecieptParent","paramMap","resId","loadReservation","hotelInfo","hotelName","topLocation","hasExtraservices","showRoomName","showRoomNameIfNotSameAsBookerName","showServiceName","showServiceNameIfServicesAdded","paymentComplete","paymentNotAvailable","toLowerCase","AcceptPaymentComponent","ProgressGiftcardAxept","progressAxeptMessage","responseModel","EasyGiftcardPaymentAccepted","usingPaymentLink","Empty","EasyPaymentAccepted","sub","qsub","authkey","responseCode","netsResponse","giftcardPaymentModel","CurrencyCode","GiftcardPaymentModel","OrderId","PaidAmount","URL","FlexWinPaymentComponent","appState","RoomLookupError","RoomsNotAvailableReason","RoomsSoldOutReason","ctx_r33","ctx_r37","ctx_r60","ctx_r66","ctx_r79","data_r5","ctx_r94","message_r81","message_r124","RatesRoomComponent","index","scrollTop","bookingIndex$","companyId$","buildRatesUIModel","selected$","selectedRate","rateSelected","buildRoomsForRate","rates","arrivaldate","returnFromBasket","calculateGuestCount","onRateClick","messageRoomGalleryTempalte","hideBasket","array","Image1","Image2","roomData","imageArray","rateDataUI","addProductScrolling","documentElement","nextImage","img","prevImage","chooseAnotherRate","onBookClick","bookingToRemove","ShortDescription","LongDescription","roomCount","getPersons","onRateSelect","messageRateGalleryTempalte","Long","onSelectedRateClick","changeImage","resetBasketBadge","loadedRates","AdultCount","ChildCount","InfantCount","SeniorCount","TeenagerCount","availableRatesAndRooms","rateModels","roomsAndRates","usingPromotionCode","ratesWithPromotion","ratesWithCompanyAgreement","RatePlan","rateModel","PromotionPrice","RoomTypes","possiblePromotionOnRate","ratePrice","DiscountPercentage","possibleAgreementOnRate","parseFloat","Sortindex","RoomType","newRoom","MinPers","Short","presentationsRooms","ParseArrival","ParseStay","ParseRateCode","RecieptComponent","referrer","startsWith","OnlineBooking","recieptReservation","onlineBookingOrigin","mainWebsiteUrl","MainWebSiteUrl","redirectToPage","ctx_r26","ctx_r53","ctx_r65","ctx_r87","message_r74","ctx_r130","message_r117","RoomComponent","getRooms","GetRatesForRooms","loadedRooms","availableRoomsAndRates","Rateplans","roomInfo","existingRoom","rateInfo","PromotionDisCount","ctx_r9","CalendarGuidanceComponent","buildCalendar","isReBuild","weekday","firstDate","lastDate","daysToAdd","initAvailability","loadAvailability","weekNumber","getWeekNumber","object","Reason","changeArrival","moveNext","searhParams","setHours","setDate","yearStart","weekNo","ceil","valueOf","start","end","useLoader","reason","closed","dep","current","ConfigHandler","ctx_r19","ctx_r39","count_r55","ctx_r70","ctx_r76","index_r31","ctx_r81","ctx_r83","ctx_r98","ctx_r103","ctx_r104","ctx_r105","ctx_r109","ctx_r110","ctx_r111","ctx_r125","count_r141","ctx_r146","ctx_r151","ctx_r156","index_r117","ctx_r167","ctx_r169","SearchFormComponent","today","defaultStay","firstAvailableDate","maxMonth","currentIndex","arrivalNotSpecified","changes","Apply","lastAvailableDate","now","FilterRoomsGuests","MaxRoomsReached","modifyToFitTab","buildCalendarData","adultCountValues","useloader","resetAvailability","available","loadingdData","depart","deeplinkRateCode","ConvertToUTCDate","existsEnd","existsStart","checkForAvailability","lastTabArrival","DepartureDate","monthChange","onAddRoomClick","guestCountNumber","mobile","BookMaxRooms","maxRooms","maxRoomsReached","onRemovePersonClick","g","onGuestQuantityChange","values","asArray","onArrivalChange","isArrivalDate","departureCalendar","departureCalendarMobile","onDepartureChange","getTimezoneOffset","closeCalendar","submitted","company","showMessage","roomGuestsList","roomGuests","newRoomGuests","Aqcs","loadConfigurations","hotels$","configuration","maxNights","MaxNights","MaxMonth","MaxRoomBook","ParseBookingType","setHotelCode","onSearchFormSubmit","RoomCounts","ctx_r1","SeatingDateCalendarComponent","cellDate","view","foundDate","highlightDates","isSame","foundYear","availableDates","isSameOrAfter","minDate","isSameOrBefore","maxDate","startOf","add","endOf","updateComponent","ngOnChanges","update","setCalendarDate","selectedDate$","dateClicked","startAt","features","SeatingStandaloneCardComponent","onNavigate","imageSrc","header","description","seatingData","sortBy","uniqBy","seating_r8","data_r3","SeatingStandaloneComponent","chosenDate$","chosenDate","buildSeatingData","highlightedDates","getAvailableDates","syncedSeatings","syncSeatings","resetDate","seatingSpectra","seatingsData","Rates","alreadyAddedCharacteristics","occupied","Characteristics","s","seatingPortal","ItemNumber","ID","seatingUiModel","seatingId","newHighDates","startOfDay","uniqHighlightedDates","toDateString","clone","isBefore","isAfter","last","range","data_r6","seatItem_r15","SeatingStandalonePageComponent","queryParamMap","basketInfo$","_c","paramDateFormat","getSeating","seatingParams","_d","rebuildBasket","rebuildSeatingUi","seatingUi","prevVal","curVal","numberOfTickets","setShowAnimation","showAnimation","onNavigateBack","onNavigateToCheckout","seatingPortalInfo","seatItem","SeatItems","seatingRate","SKU","maxTickets","timeSlots","chosenTicketAmount","chosenTimeslot","seatItems","isDateAvailable","pickedDate","updateAmountBasket","existingSeating","seatingsToBasketArray","VareNr","persistBasket","canContinue","updateTimeBasket","dateObject","objectIndex","seatingToBasket","seatId","basketSeating","timeSlot","seatGuest","QueryList","count_r42","ctx_r54","ctx_r58","ctx_r62","SeatingComponent","dateHasBeenClicked","seatingsAreChoosen","convertedDate","convertMomentToDate","seatingWrapper","selectedSeating","buildAvailibleDates","seatingTimesUiModel","loadPageContent","isBookingFlow","seatingSelected","sealectedSeatingDate","calendarOutput","oldValue","deselectAllSeatings","updateCalendar","join","buildSelectedSeatsFromBasket","vareNr","SelectedseatId","SelectedDate","SelectedName","totalPrice","ticketSelected","clock","clockSelected","selectedTime","onSeatingClick","forceState","seatingPlanId","onSeatingDateChange","tickets","buildAvailibleTickets","maxAvailible","buildTicketPrice","ticketCount","ticketsNumber","availibleTickets","clockDate","returnUrl","bask","existingSeatingTicketTotal","ticketTotalDelta","isRebuild","diff","seatingWrapperArray","seatingArray","long","selectedSeatingPlanId","target","wrapperDataExist","wrapper","matches","addToWrapper","sortList","wrapperData","selectedItems","characteristicsMatches","spectraSeatings","exist","skip","showList","GetSeatingCodeAndShowListFromQS","reArrangedSeatingWrapperArray","rearrangedArray","filteredArray","SelectBySeatingCode","urlParams","URLSearchParams","search","seatingCodeParameterName","showListParameterName","seatingCodeDefinedResult","showListDefinedResult","seatingCodeResult","showListResult","seatingsArray","matchingSeatingData","sortedArray","selectedCharacteristics","calendarDate","specSeat","seatInfo","seatingModel","multipleDays","currentSeat","clockModel","sortedDates","dateA","dateB","GuestsComponent","guestCounter","addGuest","removeGuest","EmptyError","content_r17","ctx_r35","message_r37","ProductsComponent","buildGuestCountArray","selectedGuests","guestCountArray","checkSeatingAvailability","dateCollection","buildAvailableHours","hours","tableTickets","maxPers","realDate","onCardClick","removeTableReservationFromBasket","guestArrival","selectedHour","addTableReservationToBasket","toRemove","lastNumber","toAdd","anyseatings","currentDay","buildData","calculateMonth","seatGuestArray","seatGuestProfile","tableDetails","tableToBasket","translatedMonth","tableToBasketArray","isTableSelected","selectedDate","checkMonth","arrivals","debounceTime","seat_r30","_r32","ctx_r73","ctx_r75","BasketComponent","basket$","showDate","hasSeating","showCheckOut","roomsLabel","COM_Room","COM_Rooms","addOnsLabel","BIN_NoAddOns","BIN_AddOns","opened","backToStartClicked","hideBasketClick","CheckOut","CalendarComponent","CalendarInputComponent","asDayjs","full","newMonth","newShowMonths","showMonths","BuildSelected","setShow","onInputClick","onCalendarDateChange","dateChange","onMonthClick","calendar","scrollToMonth","Intl","DateTimeFormat","resolvedOptions","timeZone","configStack","applyConfig","showLoader","subscriptions","startOfWeek","CAL_WeekStart","onPrevMonthClick","onNextMonthClick","onDayClick","enabled","onMouseMove","over","refreshMonths","hover","onCalendarScroll","scrollContainer","scrollHeight","clientHeight","months","BuildMonthAsync","monthsSubstract","numberToAdd","BuildMonths","floor","calendarContentEl","getElementsByClassName","dayEl","parentElement","monthEl","monthRect","calendarContentRect","weeks","week","selectedFirst","selectedLast","hovered","hoveredFirst","hoveredLast","visible","showOnlyCurrentMonthDays","updateCls","invalidate","validChange","cls","reject","BuildMonth","startOfMonth","shiftedStartOfMonth","shiftedStartofWeek","startDay","endDay","theme","clientWidth","RestrictColor","PrimaryColor","setProperty","decideDynamicTextColor","color","fallback","RestrictedColors","restrictedColor","exec","textColor","getComputedStyle","getPropertyValue","R","parseInt","G","B","luminance","ApplicationTextColor","NumberPipe","PricePipe","transform","Format","pure"],"sourceRoot":"webpack:///"}