{"version":3,"file":"main.f30f55919801c080.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;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACnSA;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;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;;;;;;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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/giftcard-link/giftcard-link.component.ts","./src/app/pages/giftcard/giftcard-link/giftcard-link.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';\r\nimport dayjs from 'dayjs';\r\nimport { LogClient, LogEntry, LogLevel } from './log-client.interface';\r\n\r\n@Injectable()\r\nexport class AdvancedConsoleLogClientService implements LogClient {\r\n private isNextFrame = false;\r\n private frameIndex = 0;\r\n private logLevel = LogLevel.Debug;\r\n private showStack = false;\r\n\r\n log(entry: LogEntry) {\r\n if (entry.level >= this.logLevel) {\r\n this.renderFrame();\r\n const stack = this.getStack();\r\n const msg = `Frame[${this.frameIndex}] [${LogLevel[entry.level]}] ${dayjs(entry.date).format(\r\n 'YYYY-MM-DD HH:mm:ss',\r\n )} ${entry.msg} ${entry.data.map((item) => JSON.stringify(item, null, 2)).join('\\n')} ${\r\n this.showStack ? `\\n${stack.join('\\n')}` : `\\n at ${(stack[0] || '').replace(/.*\\(/, '(')}`\r\n }`;\r\n switch (entry.level) {\r\n case LogLevel.Critical:\r\n case LogLevel.Error:\r\n // eslint-disable-next-line no-console\r\n console.error(msg);\r\n break;\r\n case LogLevel.Warning:\r\n // eslint-disable-next-line no-console\r\n console.warn(msg);\r\n break;\r\n case LogLevel.Information:\r\n // eslint-disable-next-line no-console\r\n console.info(msg);\r\n break;\r\n default:\r\n // eslint-disable-next-line no-console\r\n console.log(msg);\r\n }\r\n }\r\n }\r\n\r\n private getStack() {\r\n return (new Error().stack || '').split('\\n').slice(7);\r\n }\r\n\r\n private renderFrame() {\r\n if (!this.isNextFrame) {\r\n this.frameIndex++;\r\n // eslint-disable-next-line no-console\r\n // console.log(`Frame[${this.frameIndex}] Started:`);\r\n this.isNextFrame = true;\r\n setTimeout(() => {\r\n this.isNextFrame = false;\r\n // eslint-disable-next-line no-console\r\n // console.log(`Frame[${this.frameIndex}] Ended.`);\r\n }, 0);\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport dayjs from 'dayjs';\r\nimport { LogClient, LogEntry, LogLevel } from './log-client.interface';\r\n\r\n@Injectable()\r\nexport class ConsoleLogClientService implements LogClient {\r\n private logLevel = LogLevel.Debug;\r\n\r\n log(entry: LogEntry) {\r\n if (entry.level >= this.logLevel) {\r\n const msg = `[${LogLevel[entry.level]}] ${dayjs(entry.date).format('YYYY-MM-DD HH:mm:ss')} ${\r\n entry.msg\r\n } ${entry.data.map((item) => JSON.stringify(item, null, 2)).join('\\n')}`;\r\n switch (entry.level) {\r\n case LogLevel.Critical:\r\n case LogLevel.Error:\r\n // eslint-disable-next-line no-console\r\n console.error(msg);\r\n break;\r\n case LogLevel.Warning:\r\n // eslint-disable-next-line no-console\r\n console.warn(msg);\r\n break;\r\n case LogLevel.Information:\r\n // eslint-disable-next-line no-console\r\n console.info(msg);\r\n break;\r\n default:\r\n // eslint-disable-next-line no-console\r\n console.log(msg);\r\n }\r\n }\r\n }\r\n}\r\n","export interface LogClient {\r\n log(entry: LogEntry): void;\r\n}\r\n\r\nexport enum LogLevel {\r\n Trace = 0,\r\n Debug = 1,\r\n Information = 2,\r\n Warning = 3,\r\n Error = 4,\r\n Critical = 5,\r\n}\r\n\r\nexport type LogObject = any;\r\n\r\nexport interface LogEntry {\r\n date: Date;\r\n msg: string;\r\n level: LogLevel;\r\n data: LogObject[];\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { AsyncSubject, lastValueFrom } from 'rxjs';\r\nimport { LogClient, LogEntry, LogLevel, LogObject } from './log-client.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LogService {\r\n private static Instance = new AsyncSubject();\r\n\r\n private clients: LogClient[] = [];\r\n constructor() {\r\n LogService.Instance.next(this);\r\n this.info(`Starting application at ${encodeURI(window.location.href)}`);\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n static Using(action: (logger: LogService) => void) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n (async () => {\r\n // eslint-disable-next-line @typescript-eslint/await-thenable\r\n const logger = await lastValueFrom(await LogService.Instance);\r\n action(logger);\r\n })();\r\n }\r\n\r\n addClient(client: LogClient) {\r\n this.clients.push(client);\r\n }\r\n\r\n /** Used for the most detailed log messages, typically only valuable to a developer debugging an issue. */\r\n trace(msg: string, ...data: LogObject[]) {\r\n this.log(LogLevel.Trace, msg, data);\r\n }\r\n\r\n /** These messages have short-term usefulness during development. */\r\n debug(msg: string, ...data: LogObject[]) {\r\n this.log(LogLevel.Debug, msg, data);\r\n }\r\n\r\n /** These messages are used to track the general flow of the application. */\r\n info(msg: string, ...data: LogObject[]) {\r\n this.log(LogLevel.Information, msg, data);\r\n }\r\n\r\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. */\r\n warn(msg: string, ...data: LogObject[]) {\r\n this.log(LogLevel.Warning, msg, data);\r\n }\r\n\r\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. */\r\n error(msg: string, ...data: LogObject[]) {\r\n this.log(LogLevel.Error, msg, data);\r\n }\r\n\r\n /** A critical log level should be reserved for unrecoverable application or system crashes, or catastrophic failure that requires immediate attention. */\r\n fatal(msg: string, ...data: LogObject[]) {\r\n this.log(LogLevel.Critical, msg, data);\r\n }\r\n\r\n private log(level: LogLevel, msg: string, data: LogObject[]) {\r\n const entry: LogEntry = {\r\n date: new Date(),\r\n level,\r\n msg,\r\n data: JSON.parse(JSON.stringify(data)),\r\n }; // do full copy of data to prevent old values there.\r\n this.clients.forEach((client) => client.log(entry));\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [],\r\n providers: [],\r\n exports: [],\r\n})\r\nexport class LoggingModule {}\r\n","/*\r\n * Public API Surface of com-logging\r\n */\r\n\r\nexport * from './lib/advanced-console-log-client.service';\r\nexport * from './lib/console-log-client.service';\r\nexport * from './lib/log.service';\r\nexport * from './lib/logging.module';\r\nexport * from './lib/log-client.interface';\r\n","import { Component, ElementRef, ErrorHandler, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\r\nimport { combineLatest, lastValueFrom } from 'rxjs';\r\nimport { first, map } from 'rxjs/operators';\r\n\r\nimport {\r\n ApplicationStateService,\r\n BasketQueryParams,\r\n BasketService,\r\n Booking,\r\n ConfigService,\r\n Culture,\r\n CustomerService,\r\n HotelCodeString,\r\n HotelService,\r\n HotelType,\r\n Loader,\r\n Locale,\r\n LocaleService,\r\n PromoCodeString,\r\n PromotionService,\r\n SearchParams,\r\n TrackingService,\r\n} from 'src/app/core';\r\nimport { AppErrorHandler } from 'src/app/core/app-error.handler';\r\n\r\nimport { LogService } from '@com/logging';\r\nimport { Messenger } from 'src/app/modules/messenger';\r\nimport { Step, StepList } from 'src/app/modules/step-list';\r\nimport { RoomGuests, UTCDateTimeString } from './helpers';\r\nimport { DateHelper } from './helpers';\r\nimport { NavigationHelper } from './helpers/navigation-helper';\r\nimport { LandingPageModel } from './pages/landing-page/landing-page.component';\r\nimport { DesignConfiguration } from './shared/design/design-configuration';\r\n\r\nexport interface AppQueryParams extends Partial {\r\n PrimaryLangID?: string;\r\n reason?: string;\r\n PromotionCode?: PromoCodeString;\r\n customerToken?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n})\r\nexport class AppComponent implements OnInit {\r\n private logo = '';\r\n isSoldOutError = false;\r\n promotionInvalid = false;\r\n FooterInfo: HotelType | undefined;\r\n data$ = combineLatest([\r\n this.customerService.customer$,\r\n this.stepList.step$,\r\n this.localeService.locale$,\r\n this.basketService.hotelCode$,\r\n ]).pipe(\r\n map(([customer, step, locale, hotelCode]) => ({\r\n logo: step.step === Step.Search && !step.hasError ? this.logo : Promise.resolve(undefined),\r\n customer,\r\n canChangePromo:\r\n step.step === Step.Search ||\r\n step.step === Step.Package ||\r\n step.step === Step.AddOn ||\r\n step.step === Step.Customer,\r\n canChangeCustomer:\r\n step.step === Step.Search ||\r\n step.step === Step.Package ||\r\n step.step === Step.AddOn ||\r\n step.step === Step.Customer,\r\n showBasket:\r\n step.step === Step.Search ||\r\n step.step === Step.Package ||\r\n step.step === Step.AddOn ||\r\n step.step === Step.Customer,\r\n locale,\r\n hotel: (async () => {\r\n if (hotelCode) {\r\n return await this.hotelService.GetECommerceDepartmentInformation(hotelCode, locale);\r\n }\r\n return undefined;\r\n })(),\r\n })),\r\n );\r\n title = 'Spectra-E-Commerce-Platform';\r\n cultures: Culture[] = [];\r\n culture$ = this.localeService.locale$.pipe(map((locale) => this.cultures.find((culture) => culture.Code === locale)));\r\n version = this.config.getVersion();\r\n showLoginPopup = false;\r\n showPromoPopup = false;\r\n promocode$ = this.promotionService.promocode$;\r\n promoCodeStartDate: Date | undefined;\r\n promoCodeStartMonth: string | undefined;\r\n promoCodeEndDate: Date | undefined;\r\n promoCodeEndMonth: string | undefined;\r\n\r\n // Link and icon show/hide management\r\n showLinkbar = true;\r\n showBasket = true;\r\n showLoginPromotion = true;\r\n\r\n showMobileMenu = false;\r\n showMobileNavigationFooter = true;\r\n showMobileContinue = true;\r\n isPaymentLink = false;\r\n\r\n activeProducts: LandingPageModel[] | null | undefined;\r\n\r\n @ViewChild('header', { static: false }) header: ElementRef | undefined;\r\n @ViewChild('messageErrorTempalte', { static: false }) messageErrorTempalte: TemplateRef | undefined;\r\n @ViewChild('messageConfirmResetTemplate', { static: false })\r\n messageConfirmResetTemplate: TemplateRef | undefined;\r\n @ViewChild('messageActiveAccount', { static: false }) messageActiveAccount:\r\n | TemplateRef\r\n | undefined;\r\n @ViewChild('messageSuccess', { static: false }) messageSuccess: TemplateRef | undefined;\r\n\r\n constructor(\r\n private config: ConfigService,\r\n private router: Router,\r\n public navigationHelper: NavigationHelper,\r\n private route: ActivatedRoute,\r\n private log: LogService,\r\n private hotelService: HotelService,\r\n private basketService: BasketService,\r\n private localeService: LocaleService,\r\n private promotionService: PromotionService,\r\n private loader: Loader,\r\n private customerService: CustomerService,\r\n private stepList: StepList,\r\n private messenger: Messenger,\r\n private errorHandler: ErrorHandler,\r\n private activatedRoute: ActivatedRoute,\r\n private designConfig: DesignConfiguration,\r\n public applicationState: ApplicationStateService,\r\n protected trackingService: TrackingService, // ensure that this service is initialized with application(to send correct data to google)\r\n ) {\r\n this.promotionInvalid = false;\r\n if (errorHandler instanceof AppErrorHandler) {\r\n (this.errorHandler as AppErrorHandler).errors.subscribe((err) => {\r\n if (this.messageErrorTempalte) {\r\n if (err.message === '{\"t\":\"SoldOut\"}') {\r\n this.isSoldOutError = true;\r\n const message = this.messenger.show(this.messageErrorTempalte, {\r\n text: 'COM_SoldOutError',\r\n close: async () => {\r\n this.messenger.close(message);\r\n this.navigationHelper.goToUrl(applicationState.CustomLogoRedirectURL);\r\n },\r\n });\r\n } else if (err.message === 'SeatingSoldOut') {\r\n this.isSoldOutError = true;\r\n const message = this.messenger.show(this.messageErrorTempalte, {\r\n text: 'COM_SeatingSoldOut',\r\n close: async () => {\r\n this.messenger.close(message);\r\n this.navigationHelper.goToUrl(applicationState.CustomLogoRedirectURL);\r\n },\r\n });\r\n } else if (err.message === 'Promotion code is invalid') {\r\n this.promotionInvalid = true;\r\n }\r\n this.loader.hideAll();\r\n } else {\r\n this.log.fatal(`messageErrorTempalte must be defined`);\r\n }\r\n });\r\n }\r\n\r\n router.events.subscribe((val) => {\r\n if (val instanceof NavigationEnd) {\r\n this.trackingService.pageView(`/booking/` + val.urlAfterRedirects);\r\n }\r\n });\r\n }\r\n\r\n async ngOnInit() {\r\n this.ListenToRouteChange();\r\n await new Promise((resolve) => setTimeout(() => resolve(), 0)); // wait for router to initialize\r\n await this.getSearchParameters();\r\n const queryParams = this.route.snapshot.queryParams as AppQueryParams;\r\n await this.applyLanguage(queryParams.PrimaryLangID);\r\n await this.designConfig.applyTheme();\r\n this.applyPromocode(queryParams.PromotionCode);\r\n await this.checkForCustomerToken(queryParams.customerToken);\r\n this.logo = this.applicationState.ApplicationLogo;\r\n await this.loadNetsScript();\r\n }\r\n\r\n async getSearchParameters() {\r\n const searchParams = {} as SearchParams;\r\n this.activatedRoute.queryParams.subscribe(async (params) => {\r\n searchParams.hotelCode = params['HotelCode'];\r\n\r\n const arrival = params['ArrivalDate'];\r\n if (arrival) {\r\n searchParams.arrival = DateHelper.FromUtcDate(arrival);\r\n }\r\n searchParams.stay = params['LengthOfStay'];\r\n searchParams.rooms = [params['RoomCounts']] as unknown as RoomGuests[];\r\n searchParams.BookingFlow = params['BookingFlow'];\r\n searchParams.RateCode = params['RateCode'];\r\n\r\n if (searchParams.hotelCode) {\r\n this.applicationState.CurrentHotelCode = searchParams.hotelCode as HotelCodeString;\r\n\r\n await this.loader.using(\r\n async () => {\r\n await this.hotelService.BuildApplicationState();\r\n },\r\n 'LOA_Configuration',\r\n false,\r\n );\r\n } else {\r\n if (!this.applicationState.CurrentHotelCode && !searchParams.hotelCode) {\r\n await this.loader.using(\r\n async () => {\r\n if (!this.isPaymentLink) {\r\n const hotels = await this.hotelService.GetECommerceDepartmentsInformation();\r\n\r\n this.applicationState.CurrentHotelCode = hotels[0].Code as HotelCodeString;\r\n searchParams.hotelCode = this.applicationState.CurrentHotelCode;\r\n await this.hotelService.BuildApplicationState();\r\n }\r\n\r\n await this.designConfig.applyTheme();\r\n },\r\n 'LOA_Configuration',\r\n false,\r\n );\r\n }\r\n }\r\n\r\n await this.loader.using(\r\n async () => {\r\n this.FooterInfo = await this.hotelService.GetECommerceDepartmentInformation(\r\n this.applicationState.CurrentHotelCode,\r\n await this.localeService.getLocale(),\r\n );\r\n this.applicationState.HotelBasketInfo = this.FooterInfo;\r\n },\r\n 'LOA_Configuration',\r\n false,\r\n );\r\n });\r\n }\r\n\r\n async loadNetsScript() {\r\n const node = document.createElement('script');\r\n const config = await this.config.getAppSettings();\r\n node.src = config.NetsCheckoutScript;\r\n node.type = 'text/javascript';\r\n node.async = true;\r\n node.charset = 'utf-8';\r\n\r\n document.getElementsByTagName('head')[0].appendChild(node);\r\n }\r\n\r\n ListenToRouteChange() {\r\n this.router.events.subscribe((val) => {\r\n const basket = this.basketService.get();\r\n const ttt = val as NavigationEnd;\r\n if (ttt instanceof NavigationEnd) {\r\n this.showMobileNavigationFooter = true;\r\n if (ttt.url.includes('/search') || ttt.url.includes('/conference-search')) {\r\n this.showLinkbar = true;\r\n this.showBasket = false;\r\n this.showLoginPromotion = true;\r\n } else if (ttt.url.includes('/landing-page') || ttt.urlAfterRedirects.includes('/landing-page')) {\r\n this.showLinkbar = false;\r\n this.showBasket = false;\r\n this.showLoginPromotion = false;\r\n this.showMobileNavigationFooter = false;\r\n } else if (ttt.url.includes('/add-on')) {\r\n this.showMobileContinue = true;\r\n } else if (ttt.url.includes('/room') || ttt.url.includes('/ratesRoom')) {\r\n this.showLinkbar = true;\r\n this.showBasket = true;\r\n if (basket) {\r\n this.showMobileContinue = basket.bookings.length !== 0;\r\n }\r\n } else if (ttt.url.includes('/reciept')) {\r\n this.showBasket = false;\r\n this.showLinkbar = false;\r\n } else if (ttt.url.includes('/guests')) {\r\n this.showLinkbar = true;\r\n this.showMobileContinue = true;\r\n } else if (ttt.url.includes('/giftcard')) {\r\n this.showLinkbar = true;\r\n this.showBasket = true;\r\n this.showMobileContinue = true;\r\n } else if (ttt.url.includes('/seating')) {\r\n this.showLinkbar = true;\r\n this.showBasket = true;\r\n if (basket) {\r\n this.showMobileContinue = basket.bookings.length !== 0;\r\n }\r\n } else if (ttt.url.includes('/payment-link') || ttt.url.includes('/payment')) {\r\n this.showLinkbar = false;\r\n\r\n if (ttt.url.includes('/payment-link')) {\r\n this.isPaymentLink = true;\r\n }\r\n } else {\r\n this.showLinkbar = true;\r\n this.showBasket = true;\r\n this.isPaymentLink = false;\r\n }\r\n }\r\n });\r\n }\r\n\r\n async getCustomerEmailByToken(token: string) {\r\n this.log.trace(`App getCustomerEmailByToken(${token})`);\r\n return await this.loader.using(async () => {\r\n try {\r\n return await this.customerService.getCustomerByToken(token);\r\n } catch (err) {\r\n throw new Error(\r\n await lastValueFrom(\r\n this.localeService.translations$.pipe(\r\n first(),\r\n map((t) => t.APA_CustomerNotFound),\r\n ),\r\n ),\r\n );\r\n }\r\n }, 'LOA_CustomerInfo');\r\n }\r\n\r\n async activateCustomer(token: string, password: string) {\r\n this.log.debug(`App activateCustomer(${token}, ***)`);\r\n await this.loader.using(async () => {\r\n await this.customerService.activate(token, password);\r\n }, 'LOA_ActivatingCustomer');\r\n }\r\n\r\n async onLocaleSelect(locale: Locale) {\r\n this.log.debug(`App onLocaleSelect(${locale})`);\r\n await this.loader.using(async () => {\r\n try {\r\n await this.localeService.setLocale(locale);\r\n } catch (err) {\r\n this.log.error(`App onLocaleSelect(${locale}) failed. ${(err as Error).message}`);\r\n throw new Error(`There are no translations for ${locale} language.`);\r\n }\r\n }, 'LOA_Translations');\r\n }\r\n\r\n async onPromoSubmit() {\r\n this.log.debug(`App onPromoSubmit()`);\r\n this.showPromoPopup = false;\r\n if (this.promocode$.value && this.applicationState.CurrentHotelCode) {\r\n const promoInfo = await this.promotionService.getPromotionStatus(\r\n this.applicationState.CurrentHotelCode as HotelCodeString,\r\n this.promocode$.value,\r\n );\r\n if (promoInfo) {\r\n this.promoCodeStartDate = DateHelper.FromUtcDate(promoInfo[0].StayFromDate.toString() as UTCDateTimeString);\r\n this.promoCodeEndDate = DateHelper.FromUtcDate(promoInfo[0].StayToDate.toString() as UTCDateTimeString);\r\n this.promoCodeStartMonth = DateHelper.getTranslatedMonth(this.promoCodeStartDate.getMonth());\r\n this.promoCodeEndMonth = DateHelper.getTranslatedMonth(this.promoCodeEndDate.getMonth());\r\n }\r\n }\r\n\r\n if (this.messageSuccess && this.promocode$.value) {\r\n const message = this.messenger.show(this.messageSuccess, {\r\n close: () => {\r\n this.messenger.close(message);\r\n },\r\n });\r\n }\r\n }\r\n\r\n onShowPromoPopupClick() {\r\n this.log.trace(`App onShowPromoPopupClick()`);\r\n this.showPromoPopup = true;\r\n }\r\n\r\n BasketClick() {\r\n this.hideMobileMenu();\r\n this.basketService.showOrHideBasket();\r\n }\r\n\r\n onClosePromoPopup() {\r\n this.log.trace(`App onClosePromoPopup()`);\r\n this.showPromoPopup = false;\r\n this.hideMobileMenu();\r\n }\r\n\r\n onShowLoginPopupClick() {\r\n this.log.trace(`App onShowLoginPopupClick()`);\r\n this.confirmResetAndRunAction(() => {\r\n this.showLoginPopup = true;\r\n });\r\n }\r\n\r\n onShowLoginPopupClose() {\r\n this.log.trace(`App onShowLoginPopupClose()`);\r\n this.showLoginPopup = false;\r\n this.hideMobileMenu();\r\n }\r\n\r\n onLogoutClick() {\r\n this.log.debug(`App onLogoutClick()`);\r\n this.confirmResetAndRunAction(() => {\r\n this.customerService.logout();\r\n });\r\n }\r\n\r\n async seatingLink() {\r\n this.hideMobileMenu();\r\n await this.navigationHelper.continue('/search', '/seating/1', {\r\n queryParams: {\r\n HotelCode: this.applicationState.CurrentHotelCode,\r\n ArrivalDate: DateHelper.toServerDateFormatString(new Date()),\r\n LengthOfStay: 30,\r\n },\r\n });\r\n }\r\n\r\n async giftcardLink() {\r\n this.hideMobileMenu();\r\n await this.navigationHelper.continue('/search', '/giftcard', {\r\n queryParams: {\r\n HotelCode: this.applicationState.CurrentHotelCode,\r\n ArrivalDate: DateHelper.toServerDateFormatString(new Date()),\r\n LengthOfStay: 30,\r\n },\r\n });\r\n }\r\n\r\n async tableReservationLink() {\r\n this.hideMobileMenu();\r\n await this.navigationHelper.continue('/landing-page', '/guests');\r\n }\r\n\r\n async conferenceBookingLink() {\r\n this.hideMobileMenu();\r\n await this.navigationHelper.continue('/landing-page', '/conference-search');\r\n }\r\n\r\n private hideMobileMenu() {\r\n this.showMobileMenu = false;\r\n }\r\n clickLocale() {\r\n this.hideMobileMenu();\r\n }\r\n\r\n menuClick() {\r\n // Toggle showMobileMenu value.\r\n this.showMobileMenu = !this.showMobileMenu;\r\n }\r\n\r\n async logoClicked() {\r\n if (this.applicationState.CustomLogoRedirectURL !== '') {\r\n document.location.href = this.applicationState.CustomLogoRedirectURL;\r\n } else {\r\n this.basketService.basketBadgeNumberSet = '0';\r\n await this.navigationHelper.navigateToPage('/landing-page');\r\n }\r\n }\r\n\r\n async ratesClick() {\r\n this.hideMobileMenu();\r\n await this.navigationHelper.continue('/search', '/search', {\r\n queryParams: { HotelCode: this.applicationState.CurrentHotelCode, Single: 'true', BookingFlow: 2 },\r\n });\r\n }\r\n\r\n async roomClick() {\r\n this.hideMobileMenu();\r\n await this.navigationHelper.continue('/search', '/search', {\r\n queryParams: { HotelCode: this.applicationState.CurrentHotelCode, Single: 'true', BookingFlow: 1 },\r\n });\r\n }\r\n\r\n async goBack() {\r\n await this.navigationHelper.goBack();\r\n window.scrollTo({ left: 0, top: 0, behavior: 'smooth' });\r\n }\r\n\r\n async goHome() {\r\n if (this.applicationState.CustomLogoRedirectURL !== '') {\r\n document.location.href = this.applicationState.CustomLogoRedirectURL;\r\n } else {\r\n this.basketService.basketBadgeNumberSet = '0';\r\n await this.navigationHelper.navigateToPage('/landing-page');\r\n }\r\n window.scrollTo({ left: 0, top: 0, behavior: 'smooth' });\r\n }\r\n\r\n private updateGiftCard() {\r\n const basket = this.basketService.get();\r\n if (basket) {\r\n // We allways save giftcards on index 0 in the basket on the bookingarray, just like seatings.\r\n const giftcards = basket.bookings[0].Giftcards;\r\n\r\n if (giftcards) {\r\n for (const item of giftcards) {\r\n item.TotalPrice = item.Count * item.Price;\r\n }\r\n }\r\n this.basketService.set(basket);\r\n }\r\n }\r\n\r\n async next() {\r\n this.updateGiftCard();\r\n await this.navigationHelper.continueMobileNavigationbar(true, false);\r\n }\r\n\r\n private confirmResetAndRunAction(action: () => void) {\r\n const basket = this.basketService.get();\r\n if (basket && basket.bookings.filter((booking: Booking) => booking.HasPromotionForCustomer).length !== 0) {\r\n if (!this.messageConfirmResetTemplate) {\r\n throw new Error(`Template for reset confirmation message must exist`);\r\n }\r\n const message = this.messenger.show(this.messageConfirmResetTemplate, {\r\n confirm: async () => {\r\n action();\r\n this.messenger.close(message);\r\n await this.router.navigate(['/room/1'], {\r\n queryParams: BasketService.BuildQueryParams(basket.params),\r\n });\r\n },\r\n cancel: () => {\r\n this.messenger.close(message);\r\n },\r\n });\r\n } else {\r\n action();\r\n }\r\n }\r\n\r\n private async applyLanguage(lang: string | undefined) {\r\n await this.loader.using(\r\n async () => {\r\n try {\r\n this.cultures = await this.localeService.getCultures();\r\n const locale = await this.localeService.determineLocale(this.cultures, lang);\r\n await this.localeService.setLocale(locale);\r\n } catch (err) {\r\n this.log.fatal(`App applyLanguage() failed. ${(err as Error).message}`);\r\n await this.localeService.setLocale(Locale.GB);\r\n throw err;\r\n }\r\n },\r\n undefined,\r\n false,\r\n );\r\n }\r\n\r\n private applyPromocode(promocode: PromoCodeString | undefined) {\r\n if (promocode !== undefined) {\r\n this.promotionService.promocode$.next(promocode);\r\n }\r\n }\r\n\r\n private async checkForCustomerToken(customerToken: string | undefined) {\r\n if (customerToken) {\r\n if (!this.messageActiveAccount) {\r\n throw new Error(`messageActiveAccount variable must exists`);\r\n }\r\n const email = await this.getCustomerEmailByToken(customerToken);\r\n const message = this.messenger.show(\r\n this.messageActiveAccount,\r\n {\r\n email,\r\n activate: async (f: NgForm) => {\r\n if (f.valid) {\r\n const password = f.form.get('password');\r\n if (password) {\r\n try {\r\n await this.activateCustomer(customerToken, password.value);\r\n this.messenger.close(message);\r\n const queryParams: AppQueryParams = {\r\n customerToken: undefined,\r\n };\r\n await this.router.navigate([], {\r\n replaceUrl: true,\r\n relativeTo: this.route,\r\n queryParamsHandling: 'merge',\r\n queryParams,\r\n });\r\n } catch (err) {\r\n message.data.error = (err as Error).message;\r\n }\r\n } else {\r\n message.data.error = `password field must exist`;\r\n }\r\n } else {\r\n Object.keys(f.form.controls).forEach((key) => {\r\n const control = f.form.get(key);\r\n if (control) {\r\n control.markAsTouched();\r\n }\r\n });\r\n }\r\n },\r\n cancel: async () => {\r\n this.messenger.close(message);\r\n const queryParams: AppQueryParams = { customerToken: undefined };\r\n await this.router.navigate([], {\r\n replaceUrl: true,\r\n relativeTo: this.route,\r\n queryParamsHandling: 'merge',\r\n queryParams,\r\n });\r\n },\r\n },\r\n () => {\r\n message.data.cancel();\r\n },\r\n );\r\n }\r\n }\r\n}\r\n\r\ninterface ErrorMessage {\r\n text: string;\r\n close: () => void;\r\n}\r\n\r\ninterface ConfirmResetMessage {\r\n confirm: () => void;\r\n cancel: () => void;\r\n}\r\n\r\ninterface ActivateAccountMessage {\r\n email: string;\r\n error?: string;\r\n activate: (f: NgForm) => void;\r\n cancel: () => void;\r\n}\r\n\r\ninterface GuestMessage {\r\n close: () => void;\r\n}\r\n","\r\n\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n
\r\n
\r\n

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

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

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

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

{{ 'COM_Info' | t | async }}

\r\n

{{ 'APA_ResetBasket' | t | async }}

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

{{ 'APA_ActivateHead' | t | async }}

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

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

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

\r\n {{ message.error }}\r\n

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

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

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

{{ 'CUP_PayWithGiftcardHeader' | t | async }}

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

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

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

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

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

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

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

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

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

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

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

{{ 'LFO_RecoveryError' | t | async }}

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

{{ 'COM_Info' | t | async }}

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

{{ 'LFO_MessageSend' | t | async }}

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

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

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

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

\r\n

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

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

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

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

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

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

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

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

\r\n

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

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

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

\r\n

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

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

\r\n

\r\n {{ conferenceRoomInfo.RoomTypeName }}\r\n

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

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

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

Vælg Bordopstilling

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

{{ table.Description }}

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

\r\n
\r\n

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

Vælg Pakke

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

Dag

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

Pakke

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

Pris

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

29 Jun

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

Lokale leje uden forplejning

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

1.000 DKK

\r\n
\r\n
\r\n Book\r\n
\r\n
\r\n \r\n
\r\n

29 Jun

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

Lokale leje med konference pakke

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

1.000 DKK

\r\n
\r\n
\r\n Book\r\n
\r\n
\r\n \r\n
\r\n

30 Jun

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

Lokale leje uden forplejning

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

1.000 DKK

\r\n
\r\n
\r\n Book\r\n
\r\n \r\n \r\n
\r\n

30 Jun

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

Lokale leje med konference pakke

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

1.000 DKK

\r\n
\r\n
\r\n Book\r\n
\r\n \r\n \r\n
\r\n

1 Jul

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

Lokale leje med konference pakke

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

1.000 DKK

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

    {{ calendarDates.currentMonth | t | async }}

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

{{ 'CAL_Occupied' | t | async }}

\r\n
\r\n

{{ 'CAL_Available' | t | async }}

\r\n
\r\n

{{ 'CAL_NotPossible' | t | async }}

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

\r\n

Vælg lokale

\r\n\r\n

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

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

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

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

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

\r\n \r\n

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

Hotel

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

{{ hotel.Name }}

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

Personer

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

{{ selectedGuestCount }}

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

Dato

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

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

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

Vælg dato

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

Meeting rooms

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

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

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

Fra 1000 DKK / pr. Person

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

\r\n {{ item.RoomTypeName }}\r\n

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

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

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

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

Antal Personer

\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
    \r\n \r\n \r\n
  • \r\n

    {{ calendarDates.currentMonth | t | async }}

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

{{ 'CAL_Occupied' | t | async }}

\r\n
\r\n

{{ 'CAL_Available' | t | async }}

\r\n
\r\n

{{ 'CAL_NotPossible' | t | async }}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

\r\n
\r\n

{{ 'CUP_CancelPolicyDesc' | t | async }}

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

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

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

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

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

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

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

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

\r\n

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

\r\n\r\n

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

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

{{ 'SFO_GiftcardMetaData' | t | async }}

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

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

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

{{ 'COM_Price' | t | async }}

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

{{ 'SFO_GiftcardAmount' | t | async }}

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

{{ 'SFO_GiftcardEnterDetails' | t | async }}

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

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

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

{{ 'SFO_GiftcardTo' | t | async }}

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

{{ 'SFO_GiftcardFrom' | t | async }}

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

{{ 'SFO_GiftcardMessage' | t | async }}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n {{ 'COM_Continue' | t | async }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { HttpErrorResponse } from '@angular/common/http';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { ActivatedRoute, ParamMap, Router } from '@angular/router';\r\nimport { LogService } from 'projects/com-logging/src/lib/log.service';\r\nimport { of, switchMap } from 'rxjs';\r\nimport { ApplicationStateService, BookingService } from 'src/app/core';\r\nimport { GetVirtualGiftcardResult } from 'src/app/core/modules/payment';\r\nimport { DateHelper } from 'src/app/helpers';\r\n\r\n@Component({\r\n selector: 'app-giftcard-link',\r\n templateUrl: './giftcard-link.component.html',\r\n})\r\nexport class GiftcardLinkComponent implements OnInit {\r\n public form: FormGroup = new FormGroup({\r\n giftcardGuid: new FormControl(''),\r\n passphrase: new FormControl(''),\r\n });\r\n private giftcard?: GetVirtualGiftcardResult;\r\n private link?: string;\r\n public get ShowGiftcard() {\r\n return this.giftcard;\r\n }\r\n public get GiftCardNumber() {\r\n return this.giftcard?.Number;\r\n }\r\n public get GiftCardAmount() {\r\n return this.giftcard?.InitialAmount ?? 0;\r\n }\r\n public get GiftCardCreated() {\r\n if (!this.giftcard?.DateOfPurchase) return undefined;\r\n const date = new Date(this.giftcard.DateOfPurchase);\r\n return DateHelper.toServerDateFormatString(date);\r\n }\r\n public get GiftCardName() {\r\n return this.giftcard?.Name;\r\n }\r\n public get GiftCardPdfLink() {\r\n return this.link;\r\n }\r\n public get CanOpenPdf() {\r\n return this.giftcard && this.giftcard.RemainingAmount > 0 && this.giftcard.IsActive;\r\n }\r\n public get HotelCurrency() {\r\n return this.applicationState.HotelCurrency;\r\n }\r\n constructor(\r\n private log: LogService,\r\n private booking: BookingService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private applicationState: ApplicationStateService,\r\n ) {}\r\n\r\n public get giftcardGuid() {\r\n return this.form.get('giftcardGuid')?.value;\r\n }\r\n\r\n public openGiftCardLink() {\r\n this.log.debug('Opening giftcard link', this.link);\r\n window.open(this.link, '_blank');\r\n }\r\n\r\n async ngOnInit(): Promise {\r\n this.route.paramMap\r\n .pipe(switchMap((params: ParamMap) => of(params.get('giftcardGuid'))))\r\n .subscribe(async (giftcardGuid) => {\r\n const regex = /^[{]?[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}[}]?$/;\r\n if (!giftcardGuid || !giftcardGuid?.match(regex)) {\r\n this.router.navigate(['']);\r\n return;\r\n }\r\n this.form.patchValue({ giftcardGuid });\r\n await this.onSubmit();\r\n });\r\n this.route.queryParamMap\r\n .pipe(switchMap((params: ParamMap) => of(params.get('passphrase'))))\r\n .subscribe(async (passphrase) => {\r\n if (passphrase) {\r\n this.form.patchValue({ passphrase });\r\n await this.onSubmit();\r\n }\r\n });\r\n }\r\n async loadGiftcard(giftcardGuid: string, passphrase: string): Promise {\r\n this.log.debug('Loading giftcard', giftcardGuid, passphrase);\r\n if (!giftcardGuid || !passphrase) return;\r\n try {\r\n const giftcard = await this.booking.getVirtualGiftCard(giftcardGuid, passphrase);\r\n const link = await this.booking.GenerateVirtualGiftCardLink(giftcardGuid, passphrase);\r\n this.giftcard = giftcard;\r\n this.link = link;\r\n this.log.debug('Completed loading giftcard', giftcard, link);\r\n } catch (e) {\r\n if (e instanceof HttpErrorResponse) {\r\n if (e.status === 400) {\r\n this.form.setErrors({ unauthorized: true });\r\n } else if (e.status === 401) {\r\n this.form.setErrors({ badRequest: true });\r\n } else if (e.status === 404) {\r\n this.form.setErrors({ notFound: true });\r\n } else if (e.status === 500) {\r\n this.form.setErrors({ internalError: true });\r\n } else {\r\n this.form.setErrors({ unknownError: true });\r\n }\r\n }\r\n this.log.warn('Error getting giftcard', e);\r\n }\r\n }\r\n async onSubmit(): Promise {\r\n const giftcardGuid = this.form.controls.giftcardGuid.value;\r\n const passphrase = this.form.controls.passphrase.value;\r\n if (!giftcardGuid) return;\r\n await this.loadGiftcard(giftcardGuid, passphrase);\r\n }\r\n}\r\n","
\r\n
\r\n

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

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

{{ 'SFO_EnterPasshrase' | t | async }}

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

{{ 'SFO_GiftCardNotFound' | t | async }}

\r\n \r\n

{{ 'SFO_GiftCardError' | t | async }}

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

\r\n {{ 'SFO_GiftCard' | t | async }}\r\n

\r\n

{{ GiftCardName }}

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

\r\n {{ 'SFO_GiftCardNumber' | t | async }}\r\n

\r\n

{{ GiftCardNumber }}

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

\r\n {{ 'SFO_GiftCardValue' | t | async }}\r\n

\r\n

\r\n {{ GiftCardAmount | number }}\r\n {{ HotelCurrency }}\r\n

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

\r\n {{ 'SFO_GiftCardDateOfPurchase' | t | async }}\r\n

\r\n

\r\n {{ GiftCardCreated }}\r\n

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

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

\r\n

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

\r\n\r\n

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

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

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

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

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

{{ card.item.Name }}

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

\r\n \r\n

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

{{ 'SFO_NumberOfGiftcards' | t | async }}

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

{{ applicationState.HotelLabel | t | async }}

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

{{ hotel.name }}

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

{{ hotel.name }}

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

{{ hotel.name }}

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

{{ hotel.name }}

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

{{ tile.lable | t | async }}

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

{{ tile.lable | t | async }}

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

{{ 'PFP_Header' | t | async }}

\r\n

{{ 'PFP_Info' | t | async }}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

{{ 'LOA_PreparingPaymnent' | t | async }}

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

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

\r\n

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

\r\n

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

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

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

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

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

\r\n \r\n

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

\r\n
\r\n \r\n
\r\n \r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { LogService } from '@com/logging';\r\nimport { ApplicationStateService, BookingService, ConfigService, OriginEnum, TrackingService } from 'src/app/core';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'app-reciept',\r\n templateUrl: './reciept.component.html',\r\n})\r\nexport class RecieptComponent implements OnInit {\r\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\r\n reciept = this.bookingService.getReciept();\r\n onlineBookingOrigin =\r\n this.applicationState.Origin === OriginEnum.OnlineBooking || this.applicationState.Origin === OriginEnum.GiftCard;\r\n\r\n constructor(\r\n private log: LogService,\r\n private configService: ConfigService,\r\n private bookingService: BookingService,\r\n private trackingService: TrackingService,\r\n private applicationState: ApplicationStateService,\r\n ) {}\r\n\r\n async ngOnInit() {\r\n this.log.debug('RecieptRoute ngOnInit()');\r\n window.scrollTo(0, 0);\r\n this.bookingService.updateSessionGiftcard(null);\r\n const recieptReservation = this.reciept;\r\n\r\n if (this.onlineBookingOrigin) {\r\n if (\r\n this.applicationState.CustomReceiptRedirectURL !== undefined &&\r\n this.applicationState.CustomReceiptRedirectURL !== ''\r\n ) {\r\n this.mainWebsiteUrl = this.applicationState.CustomReceiptRedirectURL;\r\n } else {\r\n const mainWebsiteUrl = (await this.configService.getAppSettings()).MainWebSiteUrl;\r\n\r\n if (mainWebsiteUrl) {\r\n this.mainWebsiteUrl = mainWebsiteUrl;\r\n } else {\r\n this.log.info(\r\n \"AppSettings/MainWebSiteUrl property is not provided. Application may not navigate user to customer's web site.\",\r\n );\r\n }\r\n }\r\n if (this.applicationState.PaymentlinkCallBack === 'false') {\r\n // Do not track if callback from paymentlink\r\n await this.trackingService.ecommercePurchaseFromReservation(recieptReservation.reservation);\r\n }\r\n }\r\n }\r\n\r\n redirectToPage() {\r\n document.location.href = environment.production ? this.mainWebsiteUrl : '/booking';\r\n }\r\n\r\n readonly OriginEnum = OriginEnum;\r\n}\r\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 {\r\n CustomError,\r\n DateHelper,\r\n InvalidCustomerError,\r\n InvalidPromocodeError,\r\n PromocodeIsOutsideRangeError,\r\n UTCDateString,\r\n} from 'src/app/helpers';\r\n\r\nexport interface RoomLookupErrorReasonObj {\r\n t: string;\r\n p?: { [key: string]: any };\r\n}\r\n\r\nabstract class RoomLookupErrorReason {\r\n params?: { [key: string]: any };\r\n\r\n abstract getType(): string;\r\n\r\n toJSON() {\r\n const obj: RoomLookupErrorReasonObj = {\r\n t: this.getType(),\r\n p: this.params,\r\n };\r\n return JSON.stringify(obj);\r\n }\r\n}\r\n\r\nexport class RoomsNotAvailableReason extends RoomLookupErrorReason {\r\n static Type = 'NothingAvailable';\r\n getType() {\r\n return RoomsNotAvailableReason.Type;\r\n }\r\n}\r\n\r\nexport class RoomsSoldOutReason extends RoomLookupErrorReason {\r\n static Type = 'SoldOut';\r\n getType() {\r\n return RoomsSoldOutReason.Type;\r\n }\r\n}\r\n\r\nexport class CustomerInvalidReason extends RoomLookupErrorReason {\r\n static Type = 'CustomerInvalid';\r\n getType() {\r\n return CustomerInvalidReason.Type;\r\n }\r\n}\r\n\r\nexport class RoomsPromocodeInvalidReason extends RoomLookupErrorReason {\r\n static Type = 'PromocodeInvalid';\r\n getType() {\r\n return RoomsPromocodeInvalidReason.Type;\r\n }\r\n}\r\n\r\nexport class RoomsPromocodeOutsideRangeReason extends RoomLookupErrorReason {\r\n static Type = 'PromocodeOutsideRange';\r\n\r\n params: {\r\n start: Date;\r\n end: Date;\r\n };\r\n\r\n constructor(params: { [key: string]: string }) {\r\n super();\r\n if (!params.start || !params.end) {\r\n throw new Error('Passed data is not correct PromocodeOutsideRange');\r\n } else {\r\n this.params = {\r\n start: DateHelper.FromUtcDate(params.start as UTCDateString),\r\n end: DateHelper.FromUtcDate(params.end as UTCDateString),\r\n };\r\n }\r\n }\r\n\r\n getType() {\r\n return RoomsPromocodeOutsideRangeReason.Type;\r\n }\r\n}\r\n\r\nexport class RoomLookupError extends Error {\r\n static readonly Type = 'RoomLookupError';\r\n readonly type = RoomLookupError.Type;\r\n constructor(reason: RoomLookupErrorReason) {\r\n super(reason.toJSON());\r\n }\r\n\r\n static Handle(err: Error) {\r\n if ((err as CustomError).type === InvalidCustomerError.Type) {\r\n throw new RoomLookupError(new CustomerInvalidReason());\r\n }\r\n if ((err as CustomError).type === InvalidPromocodeError.Type) {\r\n throw new RoomLookupError(new RoomsPromocodeInvalidReason());\r\n }\r\n if ((err as CustomError).type === PromocodeIsOutsideRangeError.Type) {\r\n const error = err as PromocodeIsOutsideRangeError;\r\n throw new RoomLookupError(\r\n new RoomsPromocodeOutsideRangeReason({\r\n start: error.start,\r\n end: error.end,\r\n }),\r\n );\r\n }\r\n throw err;\r\n }\r\n}\r\n","import { Component, OnDestroy, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { LogService } from '@com/logging';\r\nimport { BehaviorSubject, combineLatest, from } from 'rxjs';\r\nimport { distinctUntilChanged, map, switchMap, tap } from 'rxjs/operators';\r\nimport { AppQueryParams } from 'src/app/app.component';\r\nimport { ApplicationStateService, CustomerService, PromotionService, RateCodeString } from 'src/app/core';\r\nimport {\r\n BasketQueryParams,\r\n BasketService,\r\n Loader,\r\n LocaleService,\r\n Rate,\r\n Room,\r\n SearchParams,\r\n TrackingService,\r\n} from 'src/app/core';\r\nimport {\r\n CompanyAgreementDiscountResponseModel,\r\n GuestCombination,\r\n SpectraApiRoomResponseModel,\r\n} from '../../core/modules/hotel/data-hotel.service';\r\nimport { HotelService } from '../../core/modules/hotel/hotel.service';\r\nimport { GetPromotionCodeStatus } from '../../core/modules/promotion/data-promotion.service';\r\nimport { DateHelper, GuestType, UTCDateTimeString } from '../../helpers';\r\nimport { NavigationHelper } from '../../helpers/navigation-helper';\r\nimport { Messenger } from '../../modules/messenger';\r\nimport { DesignConfiguration } from '../../shared/design/design-configuration';\r\nimport { SearchComponent } from '../search/search.component';\r\nimport { RoomLookupError, RoomsNotAvailableReason, RoomsSoldOutReason } from './room-lookup-error';\r\n\r\ninterface RoomRouteParams {\r\n index?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-room',\r\n templateUrl: './room.component.html',\r\n})\r\nexport class RoomComponent implements OnInit, OnDestroy {\r\n private bookingIndex$ = this.route.params.pipe(\r\n map((params: RoomRouteParams) => +(params.index || '1') - 1),\r\n distinctUntilChanged(),\r\n tap(() => {\r\n document.body.scrollTop = 0;\r\n }),\r\n );\r\n\r\n private selected$ = new BehaviorSubject(undefined as Room | undefined);\r\n arrivaldate = '';\r\n lengthOfStay = 2;\r\n promotionCodeUI: string | undefined;\r\n basket = this.getBasket(this.route.snapshot.queryParams as AppQueryParams);\r\n returnFromBasket = false;\r\n roomsAndRates: SpectraApiRoomResponseModel[] | undefined;\r\n\r\n @ViewChild('messageRoomGalleryTempalte', { static: false })\r\n messageRoomGalleryTempalte: TemplateRef | undefined;\r\n @ViewChild('messageRateGalleryTempalte', { static: false })\r\n messageRateGalleryTempalte: TemplateRef | undefined;\r\n\r\n data$ = combineLatest([\r\n this.localeService.locale$,\r\n this.bookingIndex$,\r\n this.promotionService.promocode$,\r\n this.customerService.customerId$,\r\n this.customerService.companyId$,\r\n ]).pipe(\r\n switchMap(([, bookingIndex, , , companyId]) =>\r\n from(this.getRooms(bookingIndex, companyId)).pipe(\r\n tap((rooms) => {\r\n if (this.basket.bookings[bookingIndex]) {\r\n this.selected$.next(rooms.find((x) => x.Code === this.basket.bookings[bookingIndex].RoomCode));\r\n }\r\n }),\r\n switchMap((rooms) =>\r\n this.selected$.pipe(\r\n switchMap((room) =>\r\n from(room ? this.GetRatesForRooms(room.Code, companyId) : [[]]).pipe(\r\n map((rates) => {\r\n return {\r\n bookingIndex,\r\n rooms,\r\n room,\r\n rates,\r\n };\r\n }),\r\n ),\r\n ),\r\n ),\r\n ),\r\n ),\r\n ),\r\n );\r\n\r\n constructor(\r\n private log: LogService,\r\n private route: ActivatedRoute,\r\n private loader: Loader,\r\n private basketService: BasketService,\r\n private hotelService: HotelService,\r\n private localeService: LocaleService,\r\n private customerService: CustomerService,\r\n private promotionService: PromotionService,\r\n private trackingService: TrackingService,\r\n private applicationState: ApplicationStateService,\r\n private messenger: Messenger,\r\n private navigationHelper: NavigationHelper,\r\n private designConfig: DesignConfiguration,\r\n ) {}\r\n\r\n async ngOnInit() {\r\n this.applicationState.stopScrolling(false);\r\n this.lengthOfStay = this.basket.params.stay;\r\n this.arrivaldate = DateHelper.toServerDateFormatString(this.basket.params.arrival);\r\n\r\n this.applicationState.ReturnFromOnlySeating = 'false';\r\n\r\n document.body.classList.remove('addBackGround');\r\n document.body.classList.remove('addBackGroundWithAnimation');\r\n document.body.style.backgroundImage = '';\r\n\r\n if (this.basket.bookings.length !== 0 && this.basket.bookings.length === this.basket.params.rooms.length) {\r\n this.returnFromBasket = true;\r\n }\r\n await this.prepareNavigation();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.navigationHelper.resetNextPage();\r\n }\r\n\r\n async prepareNavigation() {\r\n if (this.applicationState.UseTableReservation && this.applicationState.InclueTableReservationBookingFlow) {\r\n await this.navigationHelper.continueMobileNavigationbar(false, true, '/room/1', '/products', {\r\n queryParams: {\r\n HotelCode: this.applicationState.CurrentHotelCode,\r\n ArrivalDate: this.arrivaldate,\r\n LengthOfStay: this.lengthOfStay,\r\n guest: this.calculateGuestCount(),\r\n },\r\n });\r\n } else if (this.applicationState.UseSeatings && this.applicationState.InclueSeatingBookingFlow) {\r\n await this.navigationHelper.continueMobileNavigationbar(false, true, '/room/1', '/seating/1');\r\n } else {\r\n await this.navigationHelper.continueMobileNavigationbar(false, true, '/room/1', '/add-on/1');\r\n }\r\n }\r\n\r\n async onBookClick(bookingIndex: number, room: Room, rate: Rate) {\r\n const bookingToRemove = this.basket.bookings[bookingIndex];\r\n if (bookingToRemove) {\r\n this.trackingService.ecommerceRemoveFromCart({\r\n item_name: `${bookingToRemove.RoomName}/${bookingToRemove.RateCode}`,\r\n item_id: `${bookingToRemove.RoomCode}/${bookingToRemove.RateCode}`,\r\n price: bookingToRemove.Price,\r\n item_category: 'Room',\r\n quantity: 1,\r\n });\r\n }\r\n this.basket.bookings[bookingIndex] = {\r\n RoomName: room.Name,\r\n RateName: rate.Name,\r\n Price: rate.Price,\r\n OriginalPrice: rate.OriginalPrice,\r\n RateCode: rate.Code,\r\n RoomCode: room.Code,\r\n RateDescription: rate.Long ? rate.Long : '',\r\n HasPromotionForCustomer: rate.HasPromotionForCustomer,\r\n ConferenceRateCode: '',\r\n ConferenceRoomCode: '',\r\n };\r\n this.trackingService.ecommerceAddToCart({\r\n item_name: `${room.Name}/${rate.Code}`,\r\n item_id: `${room.Code}/${rate.Code}`,\r\n price: rate.Price,\r\n item_category: 'Room',\r\n quantity: 1,\r\n });\r\n this.basketService.set(this.basket);\r\n const roomCount = this.basket.params.rooms ? this.basket.params.rooms.length : 0;\r\n\r\n if (this.basket.bookings.length < roomCount) {\r\n await this.navigationHelper.continue('/room/1', `/room/${this.basket.bookings.length + 1}`);\r\n } else {\r\n if (this.applicationState.UseTableReservation && this.applicationState.InclueTableReservationBookingFlow) {\r\n await this.navigationHelper.continue('/room/1', '/products', {\r\n queryParams: {\r\n HotelCode: this.applicationState.CurrentHotelCode,\r\n ArrivalDate: this.arrivaldate,\r\n LengthOfStay: this.lengthOfStay,\r\n guest: this.calculateGuestCount(),\r\n },\r\n });\r\n } else if (this.applicationState.UseSeatings && this.applicationState.InclueSeatingBookingFlow) {\r\n await this.navigationHelper.continue('/room/1', '/seating/1');\r\n } else {\r\n await this.navigationHelper.continue('/room/1', '/add-on/1');\r\n }\r\n }\r\n }\r\n\r\n async onRateSelect(bookingIndex: number, room: Room, rate: Rate) {\r\n this.applicationState.stopScrolling(true);\r\n this.basketService.hideBasket();\r\n if (this.messageRateGalleryTempalte !== undefined) {\r\n let array = [] as string[];\r\n if (rate.Image !== '' || rate.Image1 !== '' || rate.Image2 !== '') {\r\n array = [rate.Image, rate.Image1, rate.Image2];\r\n }\r\n this.trackingService.ecommerceViewItem({\r\n item_name: `${room.Name}/${rate.Code}`,\r\n item_id: `${room.Code}/${rate.Code}`,\r\n price: rate.Price,\r\n item_category: 'Room',\r\n quantity: rate.Quantity,\r\n });\r\n const message = this.messenger.show(\r\n this.messageRateGalleryTempalte,\r\n {\r\n roomData: room,\r\n imageArray: array.filter((x) => x !== ''),\r\n selectedImage: array[0],\r\n rateData: rate,\r\n accept: async () => {\r\n this.applicationState.stopScrolling(false);\r\n\r\n const bookingToRemove = this.basket.bookings[bookingIndex];\r\n if (bookingToRemove) {\r\n this.trackingService.ecommerceRemoveFromCart({\r\n item_name: `${bookingToRemove.RoomName}/${bookingToRemove.RateCode}`,\r\n item_id: `${bookingToRemove.RoomCode}/${bookingToRemove.RateCode}`,\r\n price: bookingToRemove.Price,\r\n item_category: 'Room',\r\n quantity: 1,\r\n });\r\n }\r\n\r\n this.basket.bookings[bookingIndex] = {\r\n RoomName: room.Name,\r\n RateName: rate.Code,\r\n Price: rate.Price,\r\n OriginalPrice: rate.OriginalPrice,\r\n RateCode: rate.Code,\r\n RoomCode: room.Code,\r\n RateDescription: rate.Long ? rate.Long : '',\r\n HasPromotionForCustomer: rate.HasPromotionForCustomer,\r\n ConferenceRateCode: '',\r\n ConferenceRoomCode: '',\r\n };\r\n this.trackingService.ecommerceAddToCart({\r\n item_name: `${room.Name}/${rate.Code}`,\r\n item_id: `${room.Code}/${rate.Code}`,\r\n price: rate.Price,\r\n item_category: 'Room',\r\n quantity: 1,\r\n });\r\n this.basketService.set(this.basket);\r\n const roomCount = this.basket.params.rooms ? this.basket.params.rooms.length : 0;\r\n if (this.basket.bookings.length < roomCount) {\r\n await this.navigationHelper.continue('/room/1', `/room/${this.basket.bookings.length + 1}`);\r\n } else {\r\n if (\r\n this.applicationState.UseTableReservation &&\r\n this.applicationState.InclueTableReservationBookingFlow\r\n ) {\r\n await this.navigationHelper.continue('/room/1', '/products', {\r\n queryParams: {\r\n HotelCode: this.applicationState.CurrentHotelCode,\r\n ArrivalDate: this.arrivaldate,\r\n LengthOfStay: this.lengthOfStay,\r\n guest: this.calculateGuestCount(),\r\n },\r\n });\r\n } else if (this.applicationState.UseSeatings && this.applicationState.InclueSeatingBookingFlow) {\r\n await this.navigationHelper.continue('/room/1', '/seating/1');\r\n } else {\r\n await this.navigationHelper.continue('/room/1', '/add-on/1');\r\n }\r\n }\r\n this.messenger.close(message);\r\n },\r\n close: () => {\r\n this.applicationState.stopScrolling(false);\r\n this.messenger.close(message);\r\n },\r\n nextImage: (img: string) => {\r\n const index = array.findIndex((x) => x === img);\r\n if (array.length - 1 === index) {\r\n message.data.selectedImage = array[0];\r\n } else {\r\n message.data.selectedImage = array[index + 1];\r\n }\r\n },\r\n prevImage: (img: string) => {\r\n const index = array.findIndex((x) => x === img);\r\n if (index === 0) {\r\n message.data.selectedImage = array[array.length - 1];\r\n } else {\r\n message.data.selectedImage = array[index - 1];\r\n }\r\n },\r\n },\r\n () => {\r\n this.applicationState.stopScrolling(false);\r\n message.data.close();\r\n },\r\n );\r\n }\r\n }\r\n\r\n onRoomClick(e: Event, room: Room) {\r\n this.applicationState.stopScrolling(true);\r\n this.log.debug(`RoomRoute onRoomClick(${room.Code})`);\r\n e.stopPropagation();\r\n if (this.messageRoomGalleryTempalte !== undefined && this.selected$.value !== room) {\r\n this.basketService.hideBasket();\r\n let array = [] as string[];\r\n if (room.Image !== '' || room.Image1 !== '' || room.Image2 !== '') {\r\n array = [room.Image, room.Image1, room.Image2];\r\n }\r\n const message = this.messenger.show(\r\n this.messageRoomGalleryTempalte,\r\n {\r\n roomData: room,\r\n imageArray: array.filter((x) => x !== ''),\r\n selectedImage: array[0],\r\n rateData: undefined,\r\n accept: () => {\r\n this.applicationState.stopScrolling(false);\r\n this.selected$.next(this.selected$.value === room ? undefined : room);\r\n this.messenger.close(message);\r\n if (this.designConfig.addProductScrolling()) {\r\n const res = document.documentElement.scrollTop || document.body.scrollTop;\r\n window.scrollTo({\r\n left: 0,\r\n top: res === 0 ? +200 : res + 100,\r\n behavior: 'smooth',\r\n });\r\n }\r\n },\r\n close: () => {\r\n this.applicationState.stopScrolling(false);\r\n this.messenger.close(message);\r\n },\r\n nextImage: (img: string) => {\r\n const index = array.findIndex((x) => x === img);\r\n if (array.length - 1 === index) {\r\n message.data.selectedImage = array[0];\r\n } else {\r\n const next = array[index + 1];\r\n if (next !== '') {\r\n message.data.selectedImage = array[index + 1];\r\n } else {\r\n message.data.selectedImage = array[0];\r\n }\r\n }\r\n },\r\n prevImage: (img: string) => {\r\n const index = array.findIndex((x) => x === img);\r\n if (index === 0) {\r\n message.data.selectedImage = array[array.length - 1];\r\n } else {\r\n const prev = array[index - 1];\r\n if (prev !== '') {\r\n message.data.selectedImage = array[index - 1];\r\n } else {\r\n message.data.selectedImage = array[0];\r\n }\r\n }\r\n },\r\n },\r\n () => {\r\n this.applicationState.stopScrolling(false);\r\n message.data.close();\r\n },\r\n );\r\n } else {\r\n this.applicationState.stopScrolling(false);\r\n this.selected$.next(undefined);\r\n }\r\n }\r\n\r\n changeImage(url: string, model: GalleryModel) {\r\n model.selectedImage = url;\r\n }\r\n\r\n onSelectedRateClick(bookingIndex: number, room: Room, rate: Rate) {\r\n const bookingToRemove = this.basket.bookings[bookingIndex];\r\n if (bookingToRemove) {\r\n this.trackingService.ecommerceRemoveFromCart({\r\n item_name: `${bookingToRemove.RoomName}/${bookingToRemove.RateCode}`,\r\n price: bookingToRemove.Price,\r\n item_category: 'Room',\r\n quantity: 1,\r\n });\r\n }\r\n\r\n this.basket.bookings.splice(bookingIndex);\r\n this.basketService.set(this.basket);\r\n }\r\n\r\n async onMoveToNextClick() {\r\n if (this.applicationState.UseTableReservation && this.applicationState.InclueTableReservationBookingFlow) {\r\n await this.navigationHelper.continue('/room/1', '/products', {\r\n queryParams: {\r\n HotelCode: this.applicationState.CurrentHotelCode,\r\n ArrivalDate: this.arrivaldate,\r\n LengthOfStay: this.lengthOfStay,\r\n guest: this.calculateGuestCount(),\r\n },\r\n });\r\n } else if (this.applicationState.UseSeatings && this.applicationState.InclueSeatingBookingFlow) {\r\n await this.navigationHelper.continue('/room/1', '/seating/1');\r\n } else {\r\n await this.navigationHelper.continue('/room/1', '/add-on/1');\r\n }\r\n }\r\n\r\n calculateGuestCount() {\r\n if (this.basket) {\r\n let count = 0;\r\n\r\n for (const item of this.basket.params.rooms) {\r\n count = count + item.getPersons();\r\n }\r\n return count;\r\n }\r\n return 2;\r\n }\r\n\r\n async goBack() {\r\n await this.navigationHelper.goBack();\r\n }\r\n\r\n private getBasket(queryParams: Partial) {\r\n const hotelCode = SearchComponent.ParseHotelCode(queryParams);\r\n const arrival = SearchComponent.ParseArrival(queryParams);\r\n const stay = SearchComponent.ParseStay(queryParams);\r\n const rooms = SearchComponent.ParseRooms(queryParams);\r\n const single = SearchComponent.ParseSingle(queryParams);\r\n if (hotelCode && arrival && stay && rooms) {\r\n const params: SearchParams = {\r\n hotelCode,\r\n arrival,\r\n stay,\r\n rooms,\r\n single,\r\n ArrivalDate: 0,\r\n ArrivalFullYear: 0,\r\n ArrivalMonthName: '',\r\n DepartueDate: 0,\r\n DepartueFullYear: 0,\r\n DepartueMonthName: '',\r\n BookingFlow: 1,\r\n RateCode: '',\r\n ConferenceRoomCode: '',\r\n };\r\n return this.basketService.create(params);\r\n } else {\r\n const basket = this.basketService.get();\r\n if (basket) {\r\n return basket;\r\n } else {\r\n throw new Error('Basket must not be empty');\r\n }\r\n }\r\n }\r\n\r\n private async getRooms(bookingIndex: number, customerId: number | undefined) {\r\n const loadedRooms = await this.loader.using(async () => {\r\n const rooms = [] as Room[];\r\n try {\r\n const guests = [] as GuestCombination[];\r\n\r\n const item = this.basket.params.rooms[bookingIndex];\r\n const guest = {\r\n AdultCount: item.get(GuestType.Adult),\r\n ChildCount: item.get(GuestType.Child),\r\n InfantCount: item.get(GuestType.Infant),\r\n SeniorCount: item.get(GuestType.Senior),\r\n TeenagerCount: item.get(GuestType.UnknownType1),\r\n } as GuestCombination;\r\n guests.push(guest);\r\n\r\n const availableRoomsAndRates = await this.hotelService.GetSpectraRoomInfo(\r\n this.applicationState.CurrentHotelCode,\r\n this.basket.params.arrival,\r\n DateHelper.addDays(this.basket.params.arrival, this.lengthOfStay),\r\n this.basket.params.RateCode ? this.basket.params.RateCode : '',\r\n guests,\r\n await this.localeService.getLocale(),\r\n customerId,\r\n );\r\n if (availableRoomsAndRates) {\r\n this.roomsAndRates = availableRoomsAndRates;\r\n for (const room of availableRoomsAndRates) {\r\n for (const rate of room.Rateplans) {\r\n if (rooms.length === 0) {\r\n const roomInfo = await this.hotelService.GetECommerceRoomInfo(\r\n this.applicationState.CurrentHotelCode,\r\n room.RoomType,\r\n await this.localeService.getLocale(),\r\n );\r\n roomInfo.FromPrice = rate.Price;\r\n if (roomInfo.MinPers <= this.basket.params.rooms[bookingIndex].getPersons()) {\r\n rooms.push(roomInfo);\r\n }\r\n } else if (rooms && rooms.filter((x) => x.Code === room.RoomType).length === 0) {\r\n const roomInfo = await this.hotelService.GetECommerceRoomInfo(\r\n this.applicationState.CurrentHotelCode,\r\n room.RoomType,\r\n await this.localeService.getLocale(),\r\n );\r\n roomInfo.FromPrice = rate.Price;\r\n\r\n if (roomInfo.MinPers <= this.basket.params.rooms[bookingIndex].getPersons()) {\r\n rooms.push(roomInfo);\r\n }\r\n } else {\r\n const existingRoom = rooms.find((x) => x.Code === room.RoomType);\r\n\r\n if (existingRoom && existingRoom.FromPrice > rate.Price) {\r\n existingRoom.FromPrice = rate.Price;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return rooms.sort((a, b) => (a.SortIndex > b.SortIndex ? 1 : -1));\r\n } catch (err) {\r\n return rooms;\r\n }\r\n }, 'LOA_Rooms');\r\n\r\n if (!loadedRooms) {\r\n throw new RoomLookupError(new RoomsNotAvailableReason());\r\n } else if (loadedRooms.every((item) => !item.FromPrice)) {\r\n throw new RoomLookupError(new RoomsSoldOutReason());\r\n }\r\n return loadedRooms;\r\n }\r\n\r\n private async GetRatesForRooms(roomCode: string, companyId: number | undefined) {\r\n return await this.loader.using(async () => {\r\n try {\r\n const rates = [] as Rate[];\r\n\r\n const usingPromotionCode = this.promotionService.getPromocode();\r\n let ratesWithPromotion = [] as GetPromotionCodeStatus[];\r\n let ratesWithCompanyAgreement = [] as CompanyAgreementDiscountResponseModel[];\r\n\r\n if (companyId) {\r\n ratesWithCompanyAgreement = await this.hotelService.GetCompanyAgreementDiscount(\r\n this.applicationState.CurrentHotelCode,\r\n companyId,\r\n );\r\n }\r\n\r\n if (usingPromotionCode) {\r\n ratesWithPromotion = await this.promotionService.getPromotionStatus(\r\n this.applicationState.CurrentHotelCode,\r\n usingPromotionCode,\r\n );\r\n\r\n let fromDate = DateHelper.addDays(new Date(), 365);\r\n let toDate = new Date();\r\n\r\n for (const promo of ratesWithPromotion) {\r\n if (DateHelper.FromUtcDate(promo.StayFromDate.toString() as UTCDateTimeString) < fromDate) {\r\n fromDate = DateHelper.FromUtcDate(promo.StayFromDate.toString() as UTCDateTimeString);\r\n }\r\n if (DateHelper.FromUtcDate(promo.StayToDate.toString() as UTCDateTimeString) > toDate) {\r\n toDate = DateHelper.FromUtcDate(promo.StayToDate.toString() as UTCDateTimeString);\r\n }\r\n }\r\n\r\n if (\r\n ratesWithPromotion.length !== 0 &&\r\n fromDate.getTime() >= this.basket.params.arrival.getTime() &&\r\n toDate.getTime() >= this.basket.params.arrival.getTime()\r\n ) {\r\n if (fromDate.getTime() !== this.basket.params.arrival.getTime()) {\r\n ratesWithPromotion = [] as GetPromotionCodeStatus[];\r\n }\r\n }\r\n\r\n if (\r\n ratesWithPromotion.length !== 0 &&\r\n fromDate.getTime() <= DateHelper.addDays(this.basket.params.arrival, this.basket.params.stay).getTime() &&\r\n toDate.getTime() <= DateHelper.addDays(this.basket.params.arrival, this.basket.params.stay).getTime()\r\n ) {\r\n if (\r\n toDate.getTime() !== DateHelper.addDays(this.basket.params.arrival, this.basket.params.stay).getTime()\r\n ) {\r\n ratesWithPromotion = [] as GetPromotionCodeStatus[];\r\n }\r\n }\r\n }\r\n\r\n if (this.roomsAndRates) {\r\n for (const item of this.roomsAndRates.filter((x) => x.RoomType === roomCode)) {\r\n for (const rate of item.Rateplans) {\r\n const rateInfo = await this.hotelService.GetECommerceRateInfo(\r\n this.applicationState.CurrentHotelCode,\r\n rate.RatePlan,\r\n await this.localeService.getLocale(),\r\n );\r\n rateInfo.Long = rate.Description;\r\n rateInfo.OriginalPrice = rate.Price;\r\n rateInfo.Price = rate.Price;\r\n rateInfo.Code = rate.RatePlan as RateCodeString;\r\n rateInfo.Name = rate.Name;\r\n\r\n if (ratesWithPromotion && ratesWithPromotion.length !== 0) {\r\n const possiblePromotionOnRate = ratesWithPromotion.find((x) => x.RatePlanCode === rateInfo.Code);\r\n if (possiblePromotionOnRate) {\r\n rateInfo.Price =\r\n rateInfo.OriginalPrice - rate.Price * (possiblePromotionOnRate.DiscountPercentage / 100);\r\n rateInfo.PromotionDisCount = possiblePromotionOnRate.DiscountPercentage;\r\n }\r\n }\r\n\r\n if (ratesWithCompanyAgreement && ratesWithCompanyAgreement.length !== 0) {\r\n const possibleAgreementOnRate = ratesWithCompanyAgreement.find((x) => x.RatePlanCode === rateInfo.Code);\r\n if (possibleAgreementOnRate) {\r\n rateInfo.Price =\r\n rateInfo.OriginalPrice -\r\n rate.Price * (parseFloat(possibleAgreementOnRate.DiscountPercentage) / 100);\r\n rateInfo.PromotionDisCount = parseFloat(possibleAgreementOnRate.DiscountPercentage);\r\n }\r\n }\r\n\r\n rates.push(rateInfo);\r\n }\r\n }\r\n }\r\n return rates.sort((a, b) => (a.Sortindex > b.Sortindex ? 1 : -1));\r\n } catch (err) {\r\n return undefined;\r\n }\r\n }, 'LOA_Rooms');\r\n }\r\n}\r\n\r\ninterface GalleryModel {\r\n accept: () => void;\r\n close: () => void;\r\n nextImage: (image: string) => void;\r\n prevImage: (image: string) => void;\r\n roomData: Room;\r\n rateData: Rate | undefined;\r\n selectedImage: string;\r\n imageArray: string[];\r\n}\r\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';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ApplicationStateService, BasketQueryParams, HotelCodeString, HotelService, Loader } from '../../../core';\r\nimport { StayAvailabilityResponse } from '../../../core/modules/hotel/data-hotel.service';\r\nimport { DateHelper, RoomGuests, UTCDateString, UTCDateTimeString } from '../../../helpers';\r\nimport { NavigationHelper } from '../../../helpers/navigation-helper';\r\n\r\n@Component({\r\n selector: 'app-calendar-guidance',\r\n templateUrl: './calendar-guidance.component.html',\r\n})\r\nexport class CalendarGuidanceComponent implements OnInit {\r\n arrival: Date | undefined;\r\n lengthOfStay: number | undefined;\r\n rateCode: string | undefined;\r\n dates: CalendarModel | undefined;\r\n\r\n constructor(\r\n private navigationHelper: NavigationHelper,\r\n private route: ActivatedRoute,\r\n private loader: Loader,\r\n private hotelService: HotelService,\r\n private applicationState: ApplicationStateService,\r\n ) {}\r\n\r\n async ngOnInit(): Promise {\r\n this.catchUrlParams();\r\n await this.buildCalendar();\r\n }\r\n\r\n async goBack() {\r\n await this.navigationHelper.goBack();\r\n }\r\n\r\n catchUrlParams() {\r\n const arrival = this.route.snapshot.queryParams['ArrivalDate'];\r\n if (arrival) {\r\n this.arrival = arrival;\r\n }\r\n\r\n const lengthOfStay = this.route.snapshot.queryParams['LengthOfStay'];\r\n if (lengthOfStay) {\r\n this.lengthOfStay = Number(lengthOfStay);\r\n }\r\n\r\n const rateCode = this.route.snapshot.queryParams['rateCode'];\r\n if (rateCode) {\r\n this.rateCode = rateCode;\r\n }\r\n }\r\n\r\n async buildCalendar(isReBuild = false) {\r\n if (this.arrival && this.lengthOfStay) {\r\n const arrival = new Date(this.arrival);\r\n const weekday = new Date(this.arrival).getDay();\r\n\r\n let firstDate = DateHelper.addDays(arrival, -weekday + 1 - 7);\r\n const lastDate = DateHelper.addDays(firstDate, 21);\r\n const daysBetween = DateHelper.daysBetween(firstDate, lastDate, 0);\r\n const daysToAdd = 21;\r\n\r\n if (this.calculateStatus(dayStatus.open, firstDate) === dayStatus.runOut) {\r\n firstDate = DateHelper.addDays(arrival, -weekday + 1);\r\n }\r\n\r\n const initAvailability = await this.loadAvailability(\r\n this.applicationState.CurrentHotelCode,\r\n firstDate,\r\n DateHelper.addDays(new Date(this.arrival), daysToAdd),\r\n undefined,\r\n isReBuild,\r\n this.rateCode,\r\n );\r\n\r\n let counter = 0;\r\n this.dates = {} as CalendarModel;\r\n this.dates.days = [] as Day[];\r\n while (counter < daysBetween) {\r\n const weekNumber = this.getWeekNumber(DateHelper.addDays(firstDate, counter));\r\n\r\n let day = {} as Day;\r\n\r\n day = {\r\n active: true,\r\n selected: this.selected(DateHelper.addDays(firstDate, counter)),\r\n status: this.calculateStatus(dayStatus.open, DateHelper.addDays(firstDate, counter)),\r\n date: DateHelper.addDays(firstDate, counter),\r\n weekNumber: undefined,\r\n } as Day;\r\n this.dates.days.push(day);\r\n\r\n if (day.date.getDay() === 0) {\r\n day = {\r\n active: true,\r\n selected: false,\r\n status: dayStatus.open,\r\n date: DateHelper.addDays(firstDate, counter),\r\n weekNumber,\r\n } as Day;\r\n this.dates.days.push(day);\r\n }\r\n\r\n counter++;\r\n }\r\n\r\n for (const item of initAvailability) {\r\n const date = DateHelper.FromUtcDate(item.Date.toString() as UTCDateTimeString);\r\n\r\n const object = this.dates.days.find(\r\n (x) =>\r\n x.date.getDate() === date.getDate() &&\r\n x.date.getMonth() === date.getMonth() &&\r\n x.date.getFullYear() === date.getFullYear() &&\r\n !x.weekNumber,\r\n );\r\n if (object) {\r\n object.status = this.calculateStatus(item.Reason, new Date());\r\n if (object.status !== dayStatus.open) {\r\n object.active = false;\r\n }\r\n }\r\n }\r\n } else {\r\n await this.navigationHelper.goBack();\r\n }\r\n }\r\n\r\n async changeArrival(day: Day) {\r\n if (day.active) {\r\n this.arrival = day.date;\r\n\r\n await this.buildCalendar(true);\r\n }\r\n }\r\n\r\n async moveNext() {\r\n const searhParams = this.navigationHelper.collectSearchParams() as BasketQueryParams;\r\n if (searhParams && this.arrival) {\r\n searhParams.ArrivalDate = DateHelper.format(this.arrival, 'YYYY-MM-DD') as UTCDateString;\r\n if (this.applicationState.BookingFlow === '1') {\r\n await this.navigationHelper.continue('/search', '/room/1', {\r\n queryParams: searhParams,\r\n });\r\n } else if (this.applicationState.BookingFlow === '2') {\r\n await this.navigationHelper.continue('/search', '/ratesRoom/1', {\r\n queryParams: searhParams,\r\n });\r\n }\r\n }\r\n }\r\n\r\n private getWeekNumber(d: Date): number {\r\n // Copy date so don't modify original\r\n d = new Date(+d);\r\n d.setHours(0, 0, 0);\r\n // Set to nearest Thursday: current date + 4 - current day number\r\n // Make Sunday's day number 7\r\n d.setDate(d.getDate() + 4 - (d.getDay() || 7));\r\n // Get first day of year\r\n const yearStart = new Date(d.getFullYear(), 0, 1);\r\n // Calculate full weeks to nearest Thursday\r\n const weekNo = Math.ceil(((d.valueOf() - yearStart.valueOf()) / 86400000 + 1) / 7);\r\n // Return array of year and week number\r\n return weekNo;\r\n }\r\n\r\n private async loadAvailability(\r\n hotelCode: HotelCodeString,\r\n start: Date,\r\n end: Date,\r\n rooms: RoomGuests[] | undefined,\r\n useLoader: boolean,\r\n rateCode: string | undefined,\r\n ) {\r\n return await this.loader.using(\r\n async () => {\r\n try {\r\n const res = await this.hotelService.GetRoomAvailability(hotelCode, start, end, rateCode, undefined);\r\n return res;\r\n } catch (err) {\r\n return [] as StayAvailabilityResponse[];\r\n }\r\n },\r\n 'LOA_Availability',\r\n useLoader,\r\n );\r\n }\r\n\r\n private calculateStatus(reason: string, currentMonth: Date) {\r\n if (\r\n reason === 'HOTELCLOSED' ||\r\n reason === 'HOTELCLOSEDDAYCOLOR' ||\r\n reason === 'NORATECODES' ||\r\n reason === 'NOTHINGVACANT' ||\r\n reason === 'CL'\r\n ) {\r\n return dayStatus.closed;\r\n } else if (reason === 'CFA') {\r\n return dayStatus.arrival;\r\n } else if (reason === 'CFD') {\r\n return dayStatus.departure;\r\n } else if (\r\n currentMonth.getMonth() < new Date().getMonth() &&\r\n currentMonth.getFullYear() === new Date().getFullYear()\r\n ) {\r\n return dayStatus.runOut;\r\n } else if (\r\n currentMonth.getMonth() === new Date().getMonth() &&\r\n currentMonth.getDate() < new Date().getDate() &&\r\n currentMonth.getFullYear() === new Date().getFullYear()\r\n ) {\r\n return dayStatus.runOut;\r\n } else {\r\n return dayStatus.open;\r\n }\r\n }\r\n\r\n private selected(date: Date) {\r\n if (this.arrival && this.lengthOfStay) {\r\n const arrival = new Date(this.arrival);\r\n const arr = new Date(arrival.getFullYear(), arrival.getMonth(), arrival.getDate());\r\n\r\n const departure = DateHelper.addDays(arr, this.lengthOfStay);\r\n const dep = new Date(departure.getFullYear(), departure.getMonth(), departure.getDate());\r\n\r\n const current = new Date(date.getFullYear(), date.getMonth(), date.getDate());\r\n\r\n return current.getTime() >= arr.getTime() && date.getTime() <= dep.getTime();\r\n }\r\n return false;\r\n }\r\n}\r\n\r\ninterface CalendarModel {\r\n days: Day[];\r\n currentMonth: string;\r\n currentYear: number;\r\n}\r\n\r\ninterface Day {\r\n date: Date;\r\n active: boolean;\r\n status: dayStatus;\r\n selected: boolean;\r\n weekNumber: number | undefined;\r\n}\r\n\r\nenum dayStatus {\r\n closed = '#F87E7D',\r\n open = 'white',\r\n arrival = '#ffb759',\r\n departure = '#729ef7',\r\n runOut = '#707070',\r\n}\r\n","\r\n\r\n
\r\n \r\n
\r\n
    \r\n
  • {{ 'CAL_Mon' | t | async }}
  • \r\n
  • {{ 'CAL_Tirs' | t | async }}
  • \r\n
  • {{ 'CAL_Ons' | t | async }}
  • \r\n
  • {{ 'CAL_Tors' | t | async }}
  • \r\n
  • {{ 'CAL_Fre' | t | async }}
  • \r\n
  • {{ 'CAL_Lor' | t | async }}
  • \r\n
  • {{ 'CAL_Sun' | t | async }}
  • \r\n
  • Week
  • \r\n
\r\n
\r\n
    \r\n \r\n \r\n {{ day.date.getDate() }}\r\n \r\n {{ day.weekNumber }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{ 'CAL_Occupied' | t | async }}

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

{{ 'CAL_Available' | t | async }}

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

{{ 'CAL_Arrival' | t | async }}

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

{{ 'CAL_Departure' | t | async }}

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

Valgt

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

\r\n {{ hotel.Name }}\r\n

\r\n

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

\r\n

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

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

\r\n

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

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

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

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

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

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

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

\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
{{ data.count }}
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
1\" class=\"outside-absolute-right hide-m hide-s\">\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n {{ applicationState.MoreRoomLabel | t | async }}\r\n \r\n \r\n {{ 'COM_Continue' | t | async }}\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { LogService } from '@com/logging';\r\nimport { combineLatest, from, Observable } from 'rxjs';\r\nimport { map, switchMap, tap } from 'rxjs/operators';\r\nimport { AppQueryParams } from 'src/app/app.component';\r\nimport {\r\n ApplicationStateService,\r\n BasketQueryParams,\r\n BasketService,\r\n ConfigService,\r\n HotelService,\r\n HotelType,\r\n Loader,\r\n Locale,\r\n LocaleService,\r\n OriginEnum,\r\n PromotionService,\r\n SearchParams,\r\n} from 'src/app/core';\r\nimport { DateHelper } from 'src/app/helpers';\r\nimport { Step, StepList } from 'src/app/modules/step-list';\r\nimport { NavigationHelper } from '../../helpers/navigation-helper';\r\nimport { DesignConfiguration } from '../../shared/design/design-configuration';\r\nimport { SearchFormConfig } from './search-form.component';\r\n\r\n@Component({\r\n selector: 'app-search',\r\n templateUrl: './search.component.html',\r\n})\r\nexport class SearchComponent implements OnInit {\r\n private hotels$ = this.localeService.locale$.pipe(switchMap((locale) => from(this.loadHotels(locale))));\r\n\r\n config$ = combineLatest([\r\n this.route.queryParams as Observable,\r\n from(this.loadConfigurations()),\r\n this.hotels$,\r\n ]).pipe(\r\n map(([queryParams, configuration, hotels]) => {\r\n const config: Partial = {\r\n single: SearchComponent.ParseSingle(queryParams),\r\n hotels,\r\n hotelCode: SearchComponent.ParseHotelCode(queryParams),\r\n arrival: SearchComponent.ParseArrival(queryParams),\r\n stay: SearchComponent.ParseStay(queryParams),\r\n rooms: SearchComponent.ParseRooms(queryParams),\r\n maxNights: configuration.MaxNights,\r\n maxMonth: configuration.MaxMonth,\r\n maxRooms: configuration.MaxRoomBook,\r\n defaultStay: configuration.stay,\r\n BookingFlow: SearchComponent.ParseBookingType(queryParams),\r\n RateCode: SearchComponent.ParseRateCode(queryParams),\r\n };\r\n if (config.BookingFlow) {\r\n this.applicationState.BookingFlow = config.BookingFlow.toString();\r\n }\r\n return config;\r\n }),\r\n tap((config) => {\r\n this.basketService.setHotelCode(config.hotelCode || null);\r\n }),\r\n );\r\n\r\n constructor(\r\n private log: LogService,\r\n private route: ActivatedRoute,\r\n private hotelService: HotelService,\r\n private loader: Loader,\r\n private basketService: BasketService,\r\n private localeService: LocaleService,\r\n private config: ConfigService,\r\n private stepList: StepList,\r\n private applicationState: ApplicationStateService,\r\n private designconfig: DesignConfiguration,\r\n private navigationHelper: NavigationHelper,\r\n private promotionService: PromotionService,\r\n ) {}\r\n\r\n async ngOnInit() {\r\n await this.loader.using(\r\n async () => {\r\n await this.hotelService.BuildApplicationState();\r\n },\r\n 'LOA_Configuration',\r\n false,\r\n );\r\n\r\n await this.designconfig.addPageBackground();\r\n\r\n window.scrollTo(0, 0);\r\n this.applicationState.Origin = OriginEnum.OnlineBooking;\r\n this.stepList.set(Step.Search);\r\n this.basketService.clear();\r\n }\r\n\r\n async onSearchFormSubmit(params: SearchParams) {\r\n if (params.BookingFlow === 1) {\r\n this.applicationState.BookingFlow = params.BookingFlow.toString();\r\n await this.navigationHelper.continue(\r\n '/search',\r\n '/room/1',\r\n { queryParams: BasketService.BuildQueryParams(params) },\r\n true,\r\n );\r\n } else if (params.BookingFlow === 2) {\r\n this.applicationState.BookingFlow = params.BookingFlow.toString();\r\n await this.navigationHelper.continue(\r\n '/search',\r\n '/ratesRoom/1',\r\n { queryParams: BasketService.BuildQueryParams(params) },\r\n true,\r\n );\r\n } else {\r\n throw new TypeError('BookingFlow: ' + params.BookingFlow.toString() + ' is not supported!');\r\n }\r\n\r\n document.body.classList.remove('addBackGround');\r\n document.body.classList.remove('addBackGroundWithAnimation');\r\n document.body.style.backgroundImage = '';\r\n }\r\n\r\n async onHotelChange(hotel: HotelType) {\r\n this.log.debug(`SearchRoute onHotelChange(${hotel.Code})`);\r\n\r\n if (hotel.Code !== this.applicationState.CurrentHotelCode) {\r\n this.promotionService.promocode$.next(undefined);\r\n }\r\n await this.designconfig.applyHotelChange(hotel.Code);\r\n }\r\n\r\n private async loadConfigurations() {\r\n this.log.debug('SearchRoute loadConfigurations()');\r\n return await this.loader.using(\r\n async () => {\r\n try {\r\n const [{ MaxMonth, MaxNights, MaxRoomBook }, { stay }] = await Promise.all([\r\n this.config.getSearchParams(),\r\n this.config.getInitialSearchParams(),\r\n ]);\r\n\r\n return { MaxMonth, MaxNights, MaxRoomBook, stay };\r\n } catch (err: any) {\r\n this.log.error(`SearchRoute failed to load hotels. ${err.message}`);\r\n throw err;\r\n }\r\n },\r\n 'LOA_Configuration',\r\n false,\r\n );\r\n }\r\n\r\n private async loadHotels(lang: Locale) {\r\n this.log.debug(`SearchRoute loadHotels(${lang})`);\r\n return await this.loader.using(\r\n async () => {\r\n try {\r\n return await this.hotelService.GetECommerceDepartmentsInformation();\r\n } catch (err: any) {\r\n this.log.error(`SearchRoute failed to load hotels. ${err.message}`);\r\n throw err;\r\n }\r\n },\r\n 'LOA_HotelInformation',\r\n false,\r\n );\r\n }\r\n\r\n static ParseSingle(params: Partial) {\r\n return params.Single ? BasketService.ParseSingle(params.Single) : false;\r\n }\r\n\r\n static ParseHotelCode(params: Partial) {\r\n const hotelCode = params.HotelCode || (params as any).hotelCode; // Legacy hotelCode used - for customer activation\r\n return hotelCode ? BasketService.ParseHotelCode(hotelCode) : undefined;\r\n }\r\n\r\n static ParseArrival(params: Partial) {\r\n return params.ArrivalDate ? DateHelper.FromUtcDate(params.ArrivalDate) : undefined;\r\n }\r\n\r\n static ParseBookingType(params: Partial) {\r\n return params.BookingFlow ? +params.BookingFlow : undefined;\r\n }\r\n\r\n static ParseRateCode(params: Partial) {\r\n return params.RateCode ? params.RateCode : undefined;\r\n }\r\n\r\n static ParseStay(params: Partial) {\r\n return params.LengthOfStay !== undefined ? BasketService.ParseStay(params.LengthOfStay) : undefined;\r\n }\r\n\r\n static ParseRooms(params: Partial) {\r\n return params.RoomCounts ? BasketService.ParseRooms(params.RoomCounts) : undefined;\r\n }\r\n}\r\n","
\r\n \r\n
\r\n","import { Component, Input, OnChanges, Output, EventEmitter } from '@angular/core';\r\nimport { MatCalendarCellClassFunction } from '@angular/material/datepicker/calendar-body';\r\nimport moment, { Moment } from 'moment';\r\nimport { LocaleService } from '../../core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'seating-date-calendar',\r\n templateUrl: './seating-date-calendar.component.html',\r\n})\r\nexport class SeatingDateCalendarComponent implements OnChanges {\r\n updateComponent = false;\r\n\r\n @Input() selectedDate$!: BehaviorSubject;\r\n @Input() minDate: Moment;\r\n @Input() maxDate: Moment;\r\n @Input() highlightDates: HighlightDate[] = [];\r\n @Input() availableDates: Moment[] | null = null;\r\n @Input() startAt: Date | undefined;\r\n @Input() update = false;\r\n @Output() dateClicked = new EventEmitter();\r\n\r\n constructor(Locale: LocaleService) {\r\n // Initialize minDate and maxDate that the user can choose\r\n this.minDate = moment(new Date()).startOf('day');\r\n this.maxDate = moment(new Date()).add(1, 'year').endOf('day');\r\n // For some reason, whenever the lang is changed, the calendar is not updated\r\n // We force update it to update the month description\r\n Locale.locale$.subscribe(() => {\r\n this.updateComponent = true;\r\n setTimeout(() => {\r\n this.updateComponent = false;\r\n }, 0);\r\n });\r\n }\r\n\r\n ngOnChanges() {\r\n this.update = false;\r\n\r\n this.updateComponent = true;\r\n setTimeout(() => {\r\n this.updateComponent = false;\r\n }, 0);\r\n }\r\n\r\n highlightedDates: MatCalendarCellClassFunction = (cellDate, view) => {\r\n if (view === 'month') {\r\n const foundDate = this.highlightDates.find((d) => {\r\n return cellDate.isSame(d.date, 'day');\r\n });\r\n\r\n if (foundDate) {\r\n return foundDate.inBasket ? 'seating-date-calendar__inbasket' : 'seating-date-calendar__vacant';\r\n }\r\n\r\n return '';\r\n }\r\n\r\n if (view === 'year') {\r\n const foundYear = this.highlightDates.some((d) => {\r\n return cellDate.isSame(d.date, 'month') && !d.inBasket;\r\n });\r\n\r\n if (foundYear) {\r\n return 'seating-date-calendar__vacant';\r\n }\r\n\r\n return '';\r\n }\r\n\r\n if (view === 'multi-year') {\r\n const foundYear = this.highlightDates.some((d) => {\r\n return cellDate.isSame(d.date, 'year') && !d.inBasket;\r\n });\r\n\r\n if (foundYear) {\r\n return 'seating-date-calendar__vacant';\r\n }\r\n\r\n return '';\r\n }\r\n\r\n return '';\r\n };\r\n\r\n async setCalendarDate(date: Moment | null) {\r\n if (date) {\r\n this.selectedDate$.next(date);\r\n this.dateClicked.emit(date);\r\n }\r\n }\r\n\r\n // This needs to be an arrow function, otherwise the context of `this` is lost\r\n dateFilter = (date: Moment): boolean => {\r\n if (this.availableDates) {\r\n const available = this.availableDates.some((d) => d.isSame(date, 'day'));\r\n return date.isSameOrAfter(this.minDate) && date.isSameOrBefore(this.maxDate) && available;\r\n } else {\r\n return date.isSameOrAfter(this.minDate) && date.isSameOrBefore(this.maxDate);\r\n }\r\n };\r\n}\r\n\r\nexport interface HighlightDate {\r\n date: Date;\r\n occupied: boolean;\r\n inBasket: boolean;\r\n}\r\n","
\r\n \r\n
\r\n
\r\n
\r\n {{ 'CAL_Occupied' | t | async }}\r\n
\r\n \r\n
\r\n {{ 'COM_AddedToBasket' | t | async }}\r\n
\r\n
\r\n
\r\n","import { Component, Input } from '@angular/core';\r\nimport { NavigationHelper } from '../../helpers/navigation-helper';\r\nimport { Moment } from 'moment';\r\nimport { ApplicationStateService, SeatingData } from '../../core';\r\n\r\n@Component({\r\n selector: 'app-seating-standalone-card',\r\n templateUrl: './seating-standalone-card.component.html',\r\n})\r\nexport class SeatingStandaloneCardComponent {\r\n isMaxHeight = false;\r\n\r\n @Input() imageSrc = '';\r\n @Input() header = '';\r\n @Input() description = '';\r\n @Input() characteristics = '';\r\n @Input() date!: Moment;\r\n @Input() seatingData!: SeatingData;\r\n\r\n constructor(private navigationHelper: NavigationHelper, private applicationState: ApplicationStateService) {}\r\n\r\n setMaxHeight(isMaxHeight: boolean) {\r\n this.isMaxHeight = isMaxHeight;\r\n }\r\n\r\n async onNavigate() {\r\n if (this.characteristics === null) {\r\n return;\r\n }\r\n\r\n const queryParams = {\r\n date: this.date ? this.date.format('DD-MM-YYYY') : null,\r\n hotelCode: this.applicationState.CurrentHotelCode,\r\n };\r\n\r\n // TODO: Check if available - perhaps check parent component if its even rendered in the first place\r\n\r\n await this.navigationHelper.continue('seating-standalone', `seating-standalone/${this.characteristics}`, {\r\n queryParams: queryParams,\r\n });\r\n }\r\n}\r\n","\r\n
\r\n
\r\n \r\n {{ 'RPA_Image' | t | async }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component } from '@angular/core';\r\nimport moment, { Moment } from 'moment';\r\nimport { ApplicationStateService, HotelService, Loader, LocaleService, SeatingData } from '../../core';\r\nimport { BehaviorSubject, combineLatest, from } from 'rxjs';\r\nimport { map, switchMap } from 'rxjs/operators';\r\nimport { HighlightDate } from './seating-date-calendar.component';\r\nimport { sortBy, uniqBy } from 'lodash-es';\r\nimport { NavigationHelper } from 'src/app/helpers/navigation-helper';\r\n\r\n@Component({\r\n selector: 'app-seating-standalone',\r\n templateUrl: './seating-standalone.component.html',\r\n})\r\nexport class SeatingStandaloneComponent {\r\n chosenDate$ = new BehaviorSubject(null);\r\n minDate: Moment;\r\n maxDate: Moment;\r\n state: ApplicationStateService | undefined;\r\n\r\n seatingData$ = combineLatest([this.locale.locale$, this.chosenDate$]).pipe(\r\n switchMap(([locale, chosenDate]) =>\r\n from(this.buildSeatingData()).pipe(\r\n map((seatings) => {\r\n const { availableDates, highlightedDates } = this.getAvailableDates(seatings);\r\n const syncedSeatings = this.syncSeatings(seatings, chosenDate);\r\n\r\n return {\r\n locale,\r\n seatings: syncedSeatings,\r\n chosenDate,\r\n highlightedDates,\r\n availableDates,\r\n };\r\n }),\r\n ),\r\n ),\r\n );\r\n\r\n constructor(\r\n private hotelService: HotelService,\r\n private applicationState: ApplicationStateService,\r\n private locale: LocaleService,\r\n private loader: Loader,\r\n private navigationHelper: NavigationHelper,\r\n ) {\r\n // Initialize minDate and maxDate that the user can choose\r\n this.minDate = moment(new Date()).startOf('day');\r\n this.maxDate = moment(new Date()).add(1, 'year').endOf('day');\r\n this.state = this.applicationState;\r\n }\r\n\r\n resetDate() {\r\n this.chosenDate$.next(null);\r\n }\r\n\r\n async buildSeatingData() {\r\n return await this.loader.using(async () => {\r\n // TODO: Should hotelCode also be link-able here?\r\n const seatingSpectra = await this.hotelService.GetECommerceSeatings(\r\n this.applicationState.CurrentHotelCode,\r\n this.minDate.toDate(),\r\n this.maxDate.toDate(),\r\n await this.locale.getLocale(),\r\n );\r\n\r\n let seatings: SeatingStandaloneUIModel[] = [];\r\n if (seatingSpectra && seatingSpectra.length !== 0) {\r\n const seatingsData = seatingSpectra.filter((x) => x.Rates !== null);\r\n\r\n // Create a map to map the characteristics that are already added\r\n const alreadyAddedCharacteristics: Partial<{ [K in string]: boolean }> = {};\r\n for (const seatingData of seatingsData) {\r\n const availableDates: Moment[] = [];\r\n const highlightedDates: HighlightDate[] = seatingData.Rates.map((val) => {\r\n // Only add to available dates if booking is available\r\n if (val.MaxPers > 0) {\r\n availableDates.push(moment(val.Arrival));\r\n }\r\n\r\n return {\r\n date: new Date(val.Arrival),\r\n occupied: val.MaxPers === 0,\r\n inBasket: false,\r\n };\r\n });\r\n\r\n // If we already got a characteristics just updated the available dates\r\n if (alreadyAddedCharacteristics[seatingData.Characteristics]) {\r\n seatings = seatings.map((s) => {\r\n if (s.characteristics === seatingData.Characteristics) {\r\n return {\r\n ...s,\r\n highlightedDates: [...s.highlightedDates, ...highlightedDates],\r\n availableDates: [...s.availableDates, ...availableDates],\r\n };\r\n }\r\n\r\n return s;\r\n });\r\n continue;\r\n }\r\n\r\n const seatingPortal = await this.hotelService.GetECommerceSeatingPortalInfo(\r\n this.applicationState.CurrentHotelCode,\r\n this.minDate.toDate(),\r\n this.maxDate.toDate(),\r\n seatingData.ItemNumber,\r\n false,\r\n '',\r\n );\r\n\r\n const info = seatingPortal.find((x) => x.ID === seatingData.ItemNumber);\r\n if (info) {\r\n const seatingUiModel: SeatingStandaloneUIModel = {\r\n image: info.Image,\r\n header: info.Name,\r\n description: info.Long,\r\n sortIndex: info.SortIndex,\r\n seatingId: info.ID,\r\n seatingData: seatingData,\r\n characteristics: seatingData.Characteristics,\r\n highlightedDates: highlightedDates,\r\n availableDates: availableDates,\r\n show: true,\r\n };\r\n\r\n seatings.push(seatingUiModel);\r\n alreadyAddedCharacteristics[seatingData.Characteristics] = true;\r\n }\r\n }\r\n }\r\n\r\n seatings.sort((a, b) => a.sortIndex - b.sortIndex);\r\n return seatings;\r\n });\r\n }\r\n\r\n getAvailableDates(seatings: SeatingStandaloneUIModel[]) {\r\n let highlightedDates: HighlightDate[] = [];\r\n let availableDates: Moment[] = [];\r\n\r\n for (const seating of seatings) {\r\n availableDates = [...availableDates, ...seating.availableDates];\r\n highlightedDates = [...highlightedDates, ...seating.highlightedDates];\r\n }\r\n\r\n // We sort it with occupied being prioritized as first\r\n const newHighDates = sortBy(highlightedDates, (date) => {\r\n // We create a date at the start of the day, because we wan't to prioritize occupancy over time of day\r\n const startOfDay = moment(date.date).startOf('day');\r\n return `${startOfDay.toISOString()}_${date.occupied ? '1' : '0'}`;\r\n });\r\n\r\n // We can assume it's prioritized, then we just need to make the array unique\r\n const uniqHighlightedDates = uniqBy(newHighDates, (date) => date.date.toDateString());\r\n\r\n return {\r\n highlightedDates: uniqHighlightedDates,\r\n availableDates,\r\n };\r\n }\r\n\r\n async goBack() {\r\n await this.navigationHelper.goBack(true);\r\n }\r\n\r\n syncSeatings(seatings: SeatingStandaloneUIModel[], chosenDate: Moment | null) {\r\n if (chosenDate === null) {\r\n return seatings;\r\n }\r\n\r\n const minDate = chosenDate.clone().startOf('day');\r\n const maxDate = chosenDate.clone().endOf('day');\r\n for (const seating of seatings) {\r\n // Check if seating has any dates that meets the threshold\r\n seating.show =\r\n seating.highlightedDates.some((d) => minDate.isBefore(d.date) && maxDate.isAfter(d.date) && !d.occupied) &&\r\n seating.availableDates.length !== 0;\r\n }\r\n\r\n return seatings;\r\n }\r\n}\r\n\r\ninterface SeatingStandaloneUIModel {\r\n image: string;\r\n header: string;\r\n description: string;\r\n sortIndex: number;\r\n seatingId: string;\r\n seatingData: SeatingData;\r\n characteristics: string;\r\n highlightedDates: HighlightDate[];\r\n availableDates: Moment[];\r\n show: boolean;\r\n}\r\n","
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Nulstil valgte dato\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component } from '@angular/core';\r\nimport { ActivatedRoute, Params } from '@angular/router';\r\nimport { NavigationHelper } from '../../../helpers/navigation-helper';\r\nimport { BehaviorSubject, combineLatest, from } from 'rxjs';\r\nimport { map, switchMap } from 'rxjs/operators';\r\nimport moment, { Moment } from 'moment';\r\nimport {\r\n ApplicationStateService,\r\n Basket,\r\n BasketService,\r\n BookingSeating,\r\n HotelService,\r\n Loader,\r\n LocaleService,\r\n RateCodeString,\r\n RoomCodeString,\r\n SearchParams,\r\n TrackingService,\r\n} from '../../../core';\r\nimport { first, last, range, sortBy, uniqBy } from 'lodash-es';\r\nimport { HighlightDate } from '../seating-date-calendar.component';\r\nimport { SearchComponent } from '../../search/search.component';\r\nimport { DateHelper, UTCDateString } from 'src/app/helpers';\r\nimport { SeatProfileType } from 'src/app/core/modules/payment/reservation.service';\r\n\r\n@Component({\r\n selector: 'app-seating-standalone-page',\r\n templateUrl: './seating-standalone-page.component.html',\r\n})\r\nexport class SeatingStandalonePageComponent {\r\n showAnimation = false;\r\n state: ApplicationStateService | undefined;\r\n chosenDate$ = new BehaviorSubject(null);\r\n basketInfo$ = new BehaviorSubject([]);\r\n basket!: Basket;\r\n seatingsToBasketArray: BookingSeating[] = [];\r\n paramDateFormat = 'DD-MM-YYYY';\r\n characteristics = '';\r\n canContinue = false;\r\n seatingParams: SeatingParams = {\r\n date: '',\r\n characteristics: '',\r\n hotelCode: '',\r\n };\r\n\r\n data$ = combineLatest([this.route.queryParamMap, this.route.paramMap, this.chosenDate$, this.locale.locale$]).pipe(\r\n map(([queryParams, params, chosenDate]) => {\r\n this.basketInfo$.next([]);\r\n const date = queryParams.get('date') ?? new Date();\r\n const hotelCode = queryParams.get('hotelCode') ?? this.applicationState.CurrentHotelCode;\r\n const characteristics = params.get('characteristics') ?? '';\r\n\r\n return {\r\n chosenDate: chosenDate ?? moment(date, this.paramDateFormat),\r\n characteristics: characteristics,\r\n hotelCode: hotelCode,\r\n };\r\n }),\r\n switchMap((data) =>\r\n from(this.getSeating(data.hotelCode, data.characteristics, data.chosenDate)).pipe(\r\n map((seatingData) => {\r\n this.seatingParams = {\r\n date: data.chosenDate.format(this.paramDateFormat).toString(),\r\n characteristics: data.characteristics,\r\n hotelCode: data.hotelCode,\r\n };\r\n\r\n if (this.chosenDate$.getValue() === null) {\r\n this.chosenDate$.next(data.chosenDate);\r\n }\r\n\r\n if (seatingData) {\r\n if (!data.chosenDate.isSame(seatingData.chosenDate, 'd')) {\r\n this.seatingParams.date = seatingData.chosenDate.format(this.paramDateFormat).toString();\r\n this.chosenDate$.next(seatingData.chosenDate);\r\n }\r\n seatingData.minDate = first(seatingData.availableDates)?.clone().startOf('day') ?? seatingData.minDate;\r\n seatingData.maxDate = last(seatingData.availableDates)?.clone().endOf('day') ?? seatingData.maxDate;\r\n this.basket = this.rebuildBasket(this.route.snapshot.queryParams, seatingData.chosenDate);\r\n seatingData.seating = this.rebuildSeatingUi(seatingData.seating);\r\n }\r\n\r\n this.navigationHelper.continue(\r\n `seating-standalone/${this.seatingParams.characteristics}`,\r\n `seating-standalone/${this.seatingParams.characteristics}`,\r\n {\r\n queryParams: {\r\n hotelCode: this.seatingParams.hotelCode,\r\n date: this.seatingParams.date,\r\n },\r\n queryParamsHandling: 'merge',\r\n replaceUrl: true,\r\n },\r\n );\r\n\r\n return {\r\n seatingUi: seatingData?.seating,\r\n minDate: seatingData?.minDate,\r\n maxDate: seatingData?.maxDate,\r\n availableDates: seatingData?.availableDates,\r\n chosenDate: seatingData?.chosenDate,\r\n };\r\n }),\r\n ),\r\n ),\r\n );\r\n\r\n priceInformation$ = combineLatest([this.basketInfo$]).pipe(\r\n map(([basketInfo]) => {\r\n const price = basketInfo.reduce((prevVal, curVal) => prevVal + curVal.price * curVal.numberOfTickets, 0);\r\n\r\n return {\r\n price,\r\n };\r\n }),\r\n );\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private navigationHelper: NavigationHelper,\r\n private hotelService: HotelService,\r\n private applicationState: ApplicationStateService,\r\n private locale: LocaleService,\r\n private loader: Loader,\r\n private basketService: BasketService,\r\n private trackingService: TrackingService,\r\n ) {\r\n this.state = this.applicationState;\r\n }\r\n\r\n setShowAnimation(isMaxHeight: boolean) {\r\n this.showAnimation = isMaxHeight;\r\n }\r\n\r\n async onNavigateBack() {\r\n await this.navigationHelper.goBack();\r\n }\r\n\r\n async onNavigateToCheckout() {\r\n if (!this.basket.bookings.some((b) => b.Seatings && b.Seatings.length > 0)) {\r\n return;\r\n }\r\n await this.navigationHelper.continue(`seating-standalone/${this.seatingParams.characteristics}`, '/customer', {\r\n queryParams: {\r\n date: this.seatingParams.date,\r\n hotelCode: this.seatingParams.hotelCode,\r\n },\r\n });\r\n }\r\n\r\n async getSeating(hotelCode: string, characteristics: string, date: Moment): Promise {\r\n return await this.loader.using(async () => {\r\n // Initialize minDate and maxDate that the user can choose\r\n const minDate = moment(new Date()).startOf('day');\r\n const maxDate = moment(new Date()).add(1, 'year').endOf('day');\r\n\r\n const seatingSpectra = await this.hotelService.GetEcommerceSeating(\r\n hotelCode,\r\n minDate.toDate(),\r\n maxDate.toDate(),\r\n await this.locale.getLocale(),\r\n characteristics,\r\n );\r\n\r\n if (seatingSpectra.length !== 0) {\r\n const seatingsData = seatingSpectra.filter((x) => x.Rates !== null);\r\n\r\n let seating: SeatingStandaloneUIModel | null = null;\r\n for (const seatingData of seatingsData) {\r\n const seatingPortalInfo = await this.hotelService.GetECommerceSeatingPortalInfo(\r\n hotelCode,\r\n minDate.toDate(),\r\n maxDate.toDate(),\r\n seatingData.ItemNumber,\r\n false,\r\n '',\r\n );\r\n const info = seatingPortalInfo.find((x) => x.ID === seatingData.ItemNumber);\r\n\r\n if (info) {\r\n let availableDates: HighlightDate[] = [];\r\n const seatItem = seatingData.Rates.reduce(\r\n (prevVal, curVal, currentIndex) => {\r\n const price = info.SeatItems[currentIndex].Price;\r\n\r\n if (!seating) {\r\n availableDates.push({\r\n date: curVal.Arrival,\r\n occupied: curVal.MaxPers === 0,\r\n inBasket: false,\r\n });\r\n }\r\n\r\n const seatingRate: SeatingStandaloneSeatItem = {\r\n Description: seatingData.Description,\r\n SKU: seatingData.ItemNumber,\r\n price: price,\r\n maxTickets: range(curVal.MaxPers + 1),\r\n timeSlots: [],\r\n chosenTicketAmount: 0,\r\n chosenTimeslot: null,\r\n };\r\n\r\n return seatingRate;\r\n },\r\n {\r\n Description: '',\r\n SKU: '',\r\n price: 0,\r\n maxTickets: [],\r\n timeSlots: [],\r\n chosenTicketAmount: 0,\r\n chosenTimeslot: null,\r\n },\r\n );\r\n\r\n if (seating) {\r\n seating.seatItems = [...seating.seatItems, seatItem];\r\n continue;\r\n }\r\n\r\n availableDates = sortBy(\r\n uniqBy(availableDates, (date) => `${date.date.toString()}_${date.occupied}`),\r\n (d) => d.date,\r\n );\r\n\r\n seating = {\r\n header: info.Name,\r\n image: info.Image,\r\n description: info.Long,\r\n characteristics: seatingData.Characteristics,\r\n highlightedDates: availableDates,\r\n seatItems: [seatItem],\r\n };\r\n }\r\n }\r\n\r\n if (seating !== null) {\r\n // TODO: No available dates - should we display something?\r\n // Calculate all available dates from if they are occupied\r\n const availableDates = seating.highlightedDates.reduce((prevVal, curVal) => {\r\n if (!curVal.occupied) {\r\n return [...prevVal, moment(curVal.date)];\r\n }\r\n\r\n return [...prevVal];\r\n }, []);\r\n\r\n // Check if the date chosen is available\r\n const isDateAvailable = availableDates.some((d) => d.isSame(date, 'd'));\r\n // Decide whether the date should change\r\n const pickedDate = !isDateAvailable && availableDates[0] ? availableDates[0] : date;\r\n\r\n // Generate all available timeslots for the specific day\r\n const timeSlots = availableDates.filter((d) => d.isSame(pickedDate, 'd'));\r\n\r\n seating.seatItems = seating.seatItems.map((s) => {\r\n s.chosenTimeslot = timeSlots[0].toISOString();\r\n s.timeSlots = timeSlots;\r\n return s;\r\n });\r\n\r\n return {\r\n minDate: minDate,\r\n maxDate: maxDate,\r\n seating,\r\n availableDates: availableDates,\r\n chosenDate: pickedDate,\r\n };\r\n }\r\n }\r\n\r\n return null;\r\n });\r\n }\r\n\r\n updateAmountBasket(type: string, seating: SeatingStandaloneUIModel, seatItem: SeatingStandaloneSeatItem) {\r\n const existingSeating = this.seatingsToBasketArray.find(\r\n (x) =>\r\n x.VareNr == seatItem.SKU && x.Date.toString() == moment(seatItem.chosenTimeslot).format('YYYY-MM-DDTHH:mm:ss'),\r\n );\r\n\r\n if (type === 'increase' && seatItem.maxTickets.length > seatItem.chosenTicketAmount) {\r\n this.trackingService.ecommerceAddToCart({\r\n item_id: seatItem.SKU,\r\n item_name: seating.characteristics,\r\n item_category: 'Seating_Standalone',\r\n price: seatItem.price,\r\n quantity: 1,\r\n });\r\n seatItem.chosenTicketAmount = seatItem.chosenTicketAmount + 1;\r\n } else if (type === 'decrease' && seatItem.chosenTicketAmount > 0) {\r\n this.trackingService.ecommerceRemoveFromCart({\r\n item_id: seatItem.SKU,\r\n item_name: seating.characteristics,\r\n item_category: 'Seating_Standalone',\r\n price: seatItem.price,\r\n quantity: 1,\r\n });\r\n seatItem.chosenTicketAmount = seatItem.chosenTicketAmount - 1;\r\n } else return;\r\n\r\n this.persistBasket(seating, seatItem, existingSeating);\r\n if (this.seatingsToBasketArray.length === 0) this.canContinue = false;\r\n }\r\n\r\n updateTimeBasket($event: Event, seating: SeatingStandaloneUIModel, seatItem: SeatingStandaloneSeatItem) {\r\n const existingSeating = this.seatingsToBasketArray.find(\r\n (x) =>\r\n x.VareNr == seatItem.SKU && x.Date.toString() == moment(seatItem.chosenTimeslot).format('YYYY-MM-DDTHH:mm:ss'),\r\n );\r\n\r\n this.persistBasket(seating, seatItem, existingSeating);\r\n }\r\n\r\n persistBasket(\r\n seating: SeatingStandaloneUIModel,\r\n seatItem: SeatingStandaloneSeatItem,\r\n existingSeating: BookingSeating | undefined,\r\n ) {\r\n const dateObject = seatItem.timeSlots[0].toDate();\r\n\r\n if (existingSeating) {\r\n if (seatItem.chosenTicketAmount === 0) {\r\n const objectIndex = this.seatingsToBasketArray.indexOf(existingSeating, 0);\r\n this.seatingsToBasketArray.splice(objectIndex, 1);\r\n } else {\r\n existingSeating.TicketTotal = seatItem.chosenTicketAmount;\r\n const seatGuests = [] as SeatProfileType[];\r\n const guest: SeatProfileType = {\r\n Count: seatItem.chosenTicketAmount,\r\n Date:\r\n dateObject !== undefined\r\n ? (moment(seatItem.chosenTimeslot).format('YYYY-MM-DD') as UTCDateString)\r\n : (DateHelper.toServerDateFormatString(new Date()) as UTCDateString),\r\n Name: seatItem.Description,\r\n Price: seatItem.price,\r\n Time: moment(seatItem.chosenTimeslot).format('HH:mm'),\r\n SeatId: seatItem.SKU,\r\n VareNr: seatItem.SKU,\r\n AQC: undefined,\r\n };\r\n seatGuests.push(guest);\r\n\r\n existingSeating.SeatGuest = seatGuests;\r\n }\r\n } else if (seatItem.chosenTicketAmount !== 0) {\r\n this.canContinue = true;\r\n const seatGuests = [] as SeatProfileType[];\r\n const guest: SeatProfileType = {\r\n Count: seatItem.chosenTicketAmount,\r\n Date:\r\n dateObject !== undefined\r\n ? (DateHelper.toServerDateFormatString(moment(seatItem.chosenTimeslot).toDate()) as UTCDateString)\r\n : (DateHelper.toServerDateFormatString(new Date()) as UTCDateString),\r\n Name: seatItem.Description,\r\n Price: seatItem.price,\r\n Time: moment(seatItem.chosenTimeslot).format('HH:mm'),\r\n SeatId: seatItem.SKU,\r\n VareNr: seatItem.SKU,\r\n AQC: undefined,\r\n };\r\n seatGuests.push(guest);\r\n\r\n const seatingToBasket: BookingSeating = {\r\n SeatCode: 'DELT',\r\n Name: seatItem.Description,\r\n Id: seatItem.Description,\r\n seatId: 0,\r\n VareNr: seatItem.SKU,\r\n type: 'SeatingBooking',\r\n SinglePrice: seatItem.price,\r\n SeatRate: seating.characteristics,\r\n //@ts-ignore\r\n Date: moment(seatItem.chosenTimeslot).format('YYYY-MM-DDTHH:mm:ss'),\r\n day: dateObject.getDate().toString(),\r\n month: DateHelper.getTranslatedMonth(dateObject.getMonth()),\r\n year: dateObject.getFullYear().toString(),\r\n Time: moment(seatItem.chosenTimeslot).format('HH:mm'),\r\n SeatGuest: seatGuests,\r\n TicketTotal: seatItem.chosenTicketAmount,\r\n };\r\n\r\n this.seatingsToBasketArray.push(seatingToBasket);\r\n }\r\n\r\n const basket = this.basketService.get();\r\n\r\n if (basket) {\r\n basket.bookings[0] = {\r\n Seatings: this.seatingsToBasketArray,\r\n HasPromotionForCustomer: false,\r\n RateCode: '' as RateCodeString,\r\n RateName: '',\r\n RoomCode: '' as RoomCodeString,\r\n RoomName: '',\r\n RateDescription: '',\r\n ConferenceRateCode: '',\r\n ConferenceRoomCode: '',\r\n Price: undefined,\r\n OriginalPrice: undefined,\r\n };\r\n\r\n this.basketService.set(basket);\r\n }\r\n }\r\n\r\n private rebuildSeatingUi(seating: SeatingStandaloneUIModel) {\r\n seating.seatItems.forEach((seatItem) => {\r\n const basketInfo = this.basketInfo$.getValue();\r\n const basketSeating = basketInfo.find(\r\n (b) => b.timeSlot.isSame(seatItem.chosenTimeslot) && b.SKU === seatItem.SKU,\r\n );\r\n\r\n if (basketSeating) {\r\n seatItem.chosenTimeslot = basketSeating.timeSlot.toISOString();\r\n seatItem.chosenTicketAmount = basketSeating.numberOfTickets;\r\n }\r\n });\r\n\r\n return seating;\r\n }\r\n\r\n private rebuildBasket(queryParams: Params, chosenDate: Moment) {\r\n const hotelCode = SearchComponent.ParseHotelCode(queryParams);\r\n const arrival = chosenDate.toDate();\r\n const basket = this.basketService.get();\r\n\r\n if (basket) {\r\n const basketInfo: SeatingStandaloneBasketInfo[] = [];\r\n for (const booking of basket.bookings) {\r\n if (!booking.Seatings) continue;\r\n for (const seating of booking.Seatings) {\r\n for (const seatGuest of seating.SeatGuest) {\r\n const timeSlot = moment(seatGuest.Date, 'YYYY-MM-DD');\r\n timeSlot.add(seatGuest.Time, 'h');\r\n\r\n const info: SeatingStandaloneBasketInfo = {\r\n SKU: seatGuest.VareNr,\r\n price: seatGuest.Price,\r\n timeSlot: timeSlot,\r\n numberOfTickets: seatGuest.Count,\r\n };\r\n basketInfo.push(info);\r\n }\r\n }\r\n }\r\n this.basketInfo$.next(basketInfo);\r\n return basket;\r\n }\r\n\r\n if (hotelCode && arrival) {\r\n const params: SearchParams = {\r\n hotelCode,\r\n arrival,\r\n stay: 30,\r\n rooms: [],\r\n single: false,\r\n ArrivalDate: 0,\r\n ArrivalFullYear: 0,\r\n ArrivalMonthName: '',\r\n DepartueDate: 0,\r\n DepartueFullYear: 0,\r\n DepartueMonthName: '',\r\n BookingFlow: 1,\r\n RateCode: '',\r\n ConferenceRoomCode: '',\r\n };\r\n this.basketService.basketBadgeNumberSet = '0';\r\n return this.basketService.create(params);\r\n }\r\n throw new Error('Basket must not be empty');\r\n }\r\n}\r\n\r\ninterface SeatingStandaloneUIModel {\r\n header: string;\r\n image: string;\r\n description: string;\r\n characteristics: string;\r\n highlightedDates: HighlightDate[];\r\n seatItems: SeatingStandaloneSeatItem[];\r\n}\r\n\r\ninterface SeatingStandaloneSeatItem {\r\n Description: string;\r\n SKU: string;\r\n price: number;\r\n maxTickets: number[];\r\n timeSlots: Moment[];\r\n chosenTimeslot: string | null;\r\n chosenTicketAmount: number;\r\n}\r\n\r\ninterface SeatingStandaloneInfo {\r\n minDate: Moment;\r\n maxDate: Moment;\r\n seating: SeatingStandaloneUIModel;\r\n availableDates: Moment[];\r\n chosenDate: Moment;\r\n}\r\n\r\ninterface SeatingStandaloneBasketInfo {\r\n SKU: string;\r\n price: number;\r\n numberOfTickets: number;\r\n timeSlot: Moment;\r\n}\r\n\r\ninterface SeatingParams {\r\n date: string;\r\n hotelCode: string;\r\n characteristics: string;\r\n}\r\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';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { LogService } from '@com/logging';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { AppQueryParams } from 'src/app/app.component';\r\nimport moment, { Moment } from 'moment';\r\nimport {\r\n ApplicationStateService,\r\n AQC,\r\n Booking,\r\n BookingSeating,\r\n RateCodeString,\r\n RoomCodeString,\r\n SeatingData,\r\n SeatingRate,\r\n} from 'src/app/core';\r\nimport { BasketQueryParams, BasketService, Loader, LocaleService, SearchParams, TrackingService } from 'src/app/core';\r\nimport { DateHelper, Guid, UTCDateString, UTCDateTimeString } from 'src/app/helpers';\r\nimport { HotelService } from '../../core/modules/hotel/hotel.service';\r\nimport { SeatProfileType } from '../../core/modules/payment';\r\nimport { NavigationHelper } from '../../helpers/navigation-helper';\r\nimport { SearchComponent } from '../search/search.component';\r\nimport { HighlightDate } from '../seating-standalone/seating-date-calendar.component';\r\n@Component({\r\n selector: 'app-seating',\r\n templateUrl: './seating.component.html',\r\n})\r\nexport class SeatingComponent implements OnInit, OnDestroy {\r\n private seatingsAreChoosen = false;\r\n chosenDate$ = new BehaviorSubject(null);\r\n minDate: Moment | undefined;\r\n maxDate: Moment | undefined;\r\n selectedSeating: SeatingUiModel | undefined;\r\n basket = this.getBasket(this.route.snapshot.queryParams as AppQueryParams);\r\n onlySeating = false;\r\n canContinue = false;\r\n seatingSelected: Guid | undefined;\r\n sealectedSeatingDate: Date | undefined;\r\n seatingsToBasketArray: BookingSeating[] = [];\r\n state: ApplicationStateService | undefined;\r\n isBookingFlow = false;\r\n startAt: Date | undefined;\r\n seatingWrapper: SeatingWrapper[] | undefined;\r\n updateCalendar = false;\r\n lang = '';\r\n\r\n // Calendar\r\n highlightedDates: HighlightDate[] = [];\r\n availableDates: Moment[] = [];\r\n dateHasBeenClicked = false;\r\n\r\n @ViewChildren('seatingItem') seatingItemRef!: QueryList;\r\n @ViewChildren('seatingSelectedItem') seatingSelectedItemRef!: QueryList;\r\n\r\n constructor(\r\n private log: LogService,\r\n private route: ActivatedRoute,\r\n private loader: Loader,\r\n private basketService: BasketService,\r\n private hotelService: HotelService,\r\n private localeService: LocaleService,\r\n private trackingService: TrackingService,\r\n private applicationState: ApplicationStateService,\r\n private navigationHelper: NavigationHelper,\r\n ) {\r\n this.chosenDate$.subscribe(async (x) => {\r\n if (x) {\r\n if (\r\n this.dateHasBeenClicked ||\r\n (this.basket.bookings &&\r\n this.basket.bookings[0] &&\r\n this.basket.bookings[0].Seatings &&\r\n this.seatingsAreChoosen)\r\n ) {\r\n await this.loader.using(async () => {\r\n const convertedDate = DateHelper.convertMomentToDate(x);\r\n const res = await this.buildSeatingData(convertedDate, convertedDate);\r\n this.seatingWrapper = res;\r\n\r\n if (this.selectedSeating) {\r\n const dates = await this.buildAvailibleDates(this.basket.bookings);\r\n this.selectedSeating.seatingTimesUiModel = dates;\r\n }\r\n }, 'LOA_Availability' as any);\r\n }\r\n }\r\n });\r\n }\r\n\r\n async ngOnInit() {\r\n this.lang = await this.localeService.getLocale(); //\r\n\r\n this.localeService.locale$.subscribe(async (x) => {\r\n if (x) {\r\n if (this.lang !== x) {\r\n await this.loadPageContent();\r\n this.lang = x;\r\n }\r\n }\r\n });\r\n\r\n await this.loadPageContent();\r\n\r\n if (this.onlySeating && this.seatingWrapper && this.seatingWrapper.length === 0) {\r\n await this.navigationHelper.navigateToPage('/add-on/1');\r\n }\r\n }\r\n\r\n async loadPageContent() {\r\n await this.loader.using(async () => {\r\n this.state = this.applicationState;\r\n\r\n document.body.classList.remove('addBackGround');\r\n document.body.classList.remove('addBackGroundWithAnimation');\r\n document.body.style.backgroundImage = '';\r\n\r\n if (this.basket.bookings.length !== 0 && this.basket.bookings[0].RoomName !== '') {\r\n this.isBookingFlow = true;\r\n }\r\n\r\n // Check if any selected seating in basket\r\n if (\r\n this.basket &&\r\n this.basket.bookings[0] &&\r\n this.basket.bookings[0].Seatings &&\r\n this.basket.bookings[0].Seatings.length !== 0\r\n ) {\r\n this.seatingsAreChoosen = true;\r\n }\r\n\r\n if (this.basket.bookings.length === 0) {\r\n this.basket.params.rooms = [];\r\n }\r\n if (this.basket.bookings[0] && this.basket.bookings[0].RoomCode !== ('' as RoomCodeString)) {\r\n this.onlySeating = true;\r\n } else {\r\n await this.buildCalendarData(undefined);\r\n this.onlySeating = false;\r\n }\r\n if (this.basket.bookings[0] && this.basket.bookings[0].Seatings && this.basket.bookings[0].Seatings[0]) {\r\n this.seatingSelected = this.basket.bookings[0].Seatings[0].Id as Guid;\r\n this.sealectedSeatingDate = this.basket.bookings[0].Seatings[0].Date;\r\n }\r\n\r\n document.body.classList.remove('addBackGround');\r\n document.body.style.backgroundImage = '';\r\n await this.prepareNavigation();\r\n\r\n if (!this.seatingSelected) {\r\n const res = await this.buildSeatingData(new Date(), DateHelper.addMonth(new Date(), 12));\r\n this.seatingWrapper = res;\r\n } else {\r\n if (this.sealectedSeatingDate) {\r\n let res = [] as SeatingWrapper[];\r\n\r\n if (!this.onlySeating) {\r\n res = await this.buildSeatingData(new Date(), DateHelper.addMonth(new Date(), 12));\r\n } else {\r\n const convertedDate = DateHelper.convertMomentToDate(moment(this.sealectedSeatingDate));\r\n res = await this.buildSeatingData(convertedDate, convertedDate);\r\n }\r\n this.seatingWrapper = res;\r\n if (this.selectedSeating) {\r\n const dates = await this.buildAvailibleDates(this.basket.bookings);\r\n this.selectedSeating.seatingTimesUiModel = dates;\r\n }\r\n }\r\n }\r\n }, 'LOA_Availability' as any);\r\n }\r\n\r\n calendarOutput(date: Moment) {\r\n const oldValue = this.dateHasBeenClicked;\r\n this.dateHasBeenClicked = true;\r\n this.selectedSeating = undefined;\r\n if (!oldValue) {\r\n this.chosenDate$.next(date);\r\n }\r\n }\r\n\r\n async resetDate() {\r\n await this.loader.using(async () => {\r\n this.chosenDate$.next(null);\r\n this.dateHasBeenClicked = false;\r\n const res = await this.buildSeatingData(new Date(), DateHelper.addMonth(new Date(), 12));\r\n this.seatingWrapper = res;\r\n this.deselectAllSeatings();\r\n this.selectedSeating = undefined;\r\n await this.buildCalendarData(undefined);\r\n\r\n this.updateCalendar = true;\r\n }, 'LOA_Availability' as any);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.navigationHelper.resetNextPage();\r\n }\r\n\r\n async prepareNavigation() {\r\n const url = '/' + this.route.snapshot.url.join('/');\r\n await this.navigationHelper.continueMobileNavigationbar(false, true, url, '/add-on');\r\n }\r\n\r\n buildSelectedSeatsFromBasket(basketSeating: BookingSeating[], seatings: SeatingTimesUiModel[]) {\r\n this.seatingsToBasketArray = basketSeating;\r\n for (const item of seatings) {\r\n const res = basketSeating.find(\r\n (x) =>\r\n x.Id === item.vareNr &&\r\n DateHelper.FromUtcDate(x.Date.toString() as UTCDateString).getDate() ===\r\n DateHelper.FromUtcDate(item.arrival.toString() as UTCDateString).getDate(),\r\n );\r\n\r\n if (res && res.TicketTotal) {\r\n item.SelectedseatId = res.Id;\r\n item.SelectedDate = res.Date;\r\n item.SelectedName = res.Name;\r\n item.totalPrice = res.TicketTotal * res.SinglePrice;\r\n item.ticketSelected = res.TicketTotal;\r\n const clock = item.clock.find((x) => x.time === res.Time);\r\n if (clock) {\r\n const clockSelected = clock.time ? clock.time : undefined;\r\n clock.selectedTime = clockSelected;\r\n }\r\n }\r\n }\r\n }\r\n\r\n async onMoveToNextClick() {\r\n await this.navigationHelper.continue('/seating/1', '/add-on/1');\r\n }\r\n\r\n async onSeatingClick(e: Event | null, seating: SeatingUiModel, forceState: boolean | null = null) {\r\n if (seating.selected === forceState) {\r\n return;\r\n }\r\n this.deselectAllSeatings();\r\n\r\n if (e) {\r\n e.stopPropagation();\r\n }\r\n\r\n if (!this.onlySeating && !this.dateHasBeenClicked) {\r\n await this.buildCalendarData(seating.characteristics, true);\r\n this.chosenDate$.next(moment(seating.date));\r\n this.startAt = DateHelper.convertMomentToDate(moment(seating.date));\r\n this.updateCalendar = true;\r\n }\r\n\r\n if (this.selectedSeating && seating.seatingPlanId === this.selectedSeating.seatingPlanId) {\r\n this.selectedSeating = undefined;\r\n return;\r\n }\r\n\r\n seating.selected = forceState ? forceState : !seating.selected;\r\n this.selectedSeating = seating;\r\n const res = await this.buildAvailibleDates(this.basket.bookings);\r\n this.selectedSeating.seatingTimesUiModel = res;\r\n this.trackingService.ecommerceViewItem({\r\n item_id: seating.seatingPlanId,\r\n item_name: seating.characteristics,\r\n item_category: 'Seating',\r\n });\r\n }\r\n\r\n deselectAllSeatings() {\r\n if (this.seatingWrapper) {\r\n for (const w of this.seatingWrapper) {\r\n w.data.forEach((x) => {\r\n x.selected = false;\r\n });\r\n }\r\n }\r\n }\r\n\r\n onSeatingDateChange(event: string, rate: SeatingTimesUiModel) {\r\n rate.clock.forEach((item) => {\r\n item.selectedTime = undefined;\r\n });\r\n const clock = rate.clock.find((x) => x.time === event);\r\n if (clock) {\r\n clock.selectedTime = event;\r\n rate.tickets = this.buildAvailibleTickets(clock.maxAvailible);\r\n }\r\n }\r\n\r\n buildTicketPrice(price: number, ticketCount: number) {\r\n const totalPrice = price * ticketCount;\r\n return totalPrice;\r\n }\r\n\r\n buildAvailibleTickets(ticketsNumber: number) {\r\n const availibleTickets = [] as number[];\r\n let counter = 0;\r\n while (ticketsNumber !== 0 && counter !== ticketsNumber + 1) {\r\n availibleTickets.push(counter);\r\n counter++;\r\n }\r\n return availibleTickets;\r\n }\r\n\r\n async onRateSelect(seating: SeatingUiModel, rate: SeatingTimesUiModel) {\r\n // Quantity / Price change from \"Select\" (none) to an actual quantity.\r\n const seatingToBasket = {} as BookingSeating;\r\n\r\n rate.totalPrice = this.buildTicketPrice(rate.price, rate.ticketSelected);\r\n const clockDate = rate.clock.find((x) => x.selectedTime);\r\n\r\n if (clockDate) {\r\n seatingToBasket.Date = clockDate.date;\r\n seatingToBasket.Time = clockDate.time;\r\n } else {\r\n seatingToBasket.Date = rate.clock[0].date;\r\n seatingToBasket.Time = rate.clock[0].time;\r\n }\r\n\r\n const midDate = DateHelper.FromUtcDate(rate.arrival.toString() as UTCDateString);\r\n const month = DateHelper.getTranslatedMonth(midDate.getMonth());\r\n\r\n seatingToBasket.day = midDate.getDate().toString();\r\n seatingToBasket.month = month;\r\n seatingToBasket.year = midDate.getFullYear().toString();\r\n seatingToBasket.Id = rate.vareNr;\r\n seatingToBasket.Name = rate.name;\r\n seatingToBasket.SinglePrice = rate.price;\r\n seatingToBasket.TicketTotal = rate.ticketSelected;\r\n seatingToBasket.SeatRate = seating.characteristics;\r\n seatingToBasket.SeatingPlanName = seating.name;\r\n seatingToBasket.SeatCode = 'DELT';\r\n seatingToBasket.seatId = rate.ID;\r\n seatingToBasket.type = 'SeatingBooking';\r\n seatingToBasket.returnUrl = {};\r\n\r\n const seatGuests = [] as SeatProfileType[];\r\n const modiDate = DateHelper.FromUtcDate(seatingToBasket.Date.toString() as UTCDateString);\r\n const guest: SeatProfileType = {\r\n Count: seatingToBasket.TicketTotal ? seatingToBasket.TicketTotal : 0,\r\n Date: seatingToBasket.Date\r\n ? (DateHelper.toServerDateFormatString(modiDate) as UTCDateString)\r\n : (DateHelper.toServerDateFormatString(new Date()) as UTCDateString),\r\n Name: seatingToBasket.Name,\r\n Price: seatingToBasket.SinglePrice,\r\n Time: seatingToBasket.Time ? seatingToBasket.Time : '',\r\n SeatId: seatingToBasket.Id,\r\n VareNr: rate.vareNr,\r\n AQC: rate.AQC,\r\n };\r\n seatGuests.push(guest);\r\n\r\n seatingToBasket.SeatGuest = seatGuests;\r\n this.seatingsToBasketArray.push(seatingToBasket);\r\n\r\n const bask = this.basket.bookings[0];\r\n\r\n if (bask) {\r\n this.basket.bookings[0] = {\r\n Seatings: this.seatingsToBasketArray,\r\n HasPromotionForCustomer: bask.HasPromotionForCustomer,\r\n RateCode: bask.RateCode,\r\n RateName: bask.RateName,\r\n RoomCode: bask.RoomCode,\r\n RoomName: bask.RoomName,\r\n RateDescription: bask.RateDescription ? bask.RateDescription : '',\r\n AddOns: bask.AddOns,\r\n TableSeatings: bask.TableSeatings,\r\n ConferenceRateCode: '',\r\n OriginalPrice: bask.OriginalPrice,\r\n ConferenceRoomCode: '',\r\n Price: bask.Price,\r\n };\r\n } else {\r\n this.basket.bookings[0] = {\r\n Seatings: this.seatingsToBasketArray,\r\n HasPromotionForCustomer: false,\r\n RateCode: '' as RateCodeString,\r\n RateName: '',\r\n RoomCode: '' as RoomCodeString,\r\n RoomName: '',\r\n RateDescription: '',\r\n ConferenceRateCode: '',\r\n ConferenceRoomCode: '',\r\n Price: undefined,\r\n OriginalPrice: undefined,\r\n };\r\n }\r\n\r\n this.trackingService.ecommerceAddToCart({\r\n item_id: rate.vareNr,\r\n item_name: seating.characteristics,\r\n item_category: 'Seating',\r\n quantity: rate.ticketSelected,\r\n price: rate.price,\r\n });\r\n rate.SelectedseatId = rate.vareNr;\r\n rate.SelectedName = rate.name;\r\n rate.SelectedDate = rate.arrival;\r\n\r\n this.sealectedSeatingDate = seating.date;\r\n this.basketService.set(this.basket);\r\n\r\n if (!this.onlySeating) {\r\n this.highlightedDates.push({\r\n date: rate.arrival,\r\n occupied: false,\r\n inBasket: true,\r\n } as HighlightDate);\r\n this.updateCalendar = true;\r\n }\r\n\r\n this.canContinue = true;\r\n }\r\n\r\n onSelectedRateClick(rate: SeatingTimesUiModel) {\r\n // Quantity / Price changed from one quantity to another quantity.\r\n this.basketService.set(this.basket);\r\n\r\n const existingSeating = this.seatingsToBasketArray.find(\r\n (seating) =>\r\n seating.seatId === rate.ID &&\r\n DateHelper.FromUtcDate(seating.Date.toString() as UTCDateString).getDate() ===\r\n DateHelper.FromUtcDate(rate.arrival.toString() as UTCDateString).getDate() &&\r\n seating.Name === rate.name,\r\n );\r\n if (existingSeating) {\r\n const existingSeatingTicketTotal = existingSeating.TicketTotal ?? 0;\r\n if (rate.ticketSelected != 0) {\r\n // Update seating quantity\r\n existingSeating.TicketTotal = rate.ticketSelected;\r\n if (existingSeating.SeatGuest.length > 0) {\r\n existingSeating.SeatGuest[0].Count = rate.ticketSelected;\r\n }\r\n const ticketTotalDelta = rate.ticketSelected - existingSeatingTicketTotal;\r\n if (ticketTotalDelta > 0) {\r\n this.trackingService.ecommerceAddToCart({\r\n item_name: `${existingSeating?.SeatRate}`,\r\n item_id: `${existingSeating?.Id}`,\r\n item_category: 'Seating',\r\n quantity: ticketTotalDelta,\r\n price: existingSeating?.SinglePrice,\r\n });\r\n } else {\r\n this.trackingService.ecommerceRemoveFromCart({\r\n item_name: `${existingSeating?.SeatRate}`,\r\n item_id: `${existingSeating?.Id}`,\r\n item_category: 'Seating',\r\n quantity: Math.abs(ticketTotalDelta),\r\n price: existingSeating?.SinglePrice,\r\n });\r\n }\r\n } else {\r\n // Remove seating quantity\r\n const index = this.seatingsToBasketArray.indexOf(existingSeating);\r\n this.seatingsToBasketArray.splice(index, 1);\r\n rate.SelectedseatId = undefined;\r\n this.trackingService.ecommerceRemoveFromCart({\r\n item_name: `${existingSeating?.SeatRate}`,\r\n item_id: `${existingSeating?.Id}`,\r\n item_category: 'Seating',\r\n quantity: existingSeatingTicketTotal,\r\n price: existingSeating?.SinglePrice,\r\n });\r\n }\r\n }\r\n\r\n if (this.basket.bookings[0].Seatings === undefined || this.basket.bookings[0].Seatings.length === 0) {\r\n this.onlySeating = false;\r\n }\r\n this.basketService.set(this.basket);\r\n }\r\n\r\n async goBack() {\r\n if (this.basket.bookings[0] && this.basket.bookings[0].RoomCode === ('' as RoomCodeString)) {\r\n await this.navigationHelper.goBack(true);\r\n } else {\r\n await this.navigationHelper.goBack();\r\n }\r\n }\r\n\r\n async buildCalendarData(itemNumber: string | undefined, isRebuild = false) {\r\n await this.loader.using(async () => {\r\n this.availableDates = [];\r\n let seatingSpectra = await this.hotelService.GetECommerceSeatings(\r\n this.applicationState.CurrentHotelCode,\r\n new Date(),\r\n DateHelper.addMonth(new Date(), 12),\r\n await this.localeService.getLocale(),\r\n true,\r\n );\r\n\r\n if (itemNumber) {\r\n seatingSpectra = seatingSpectra.filter((x) => x.Characteristics === itemNumber);\r\n }\r\n\r\n for (const item of seatingSpectra) {\r\n for (const rate of item.Rates) {\r\n this.availableDates.push(moment(rate.Arrival));\r\n\r\n if (\r\n this.seatingsAreChoosen &&\r\n this.basket.bookings[0].Seatings &&\r\n this.basket.bookings[0].Seatings.filter((x) => x.Date === rate.Arrival).length > 0\r\n ) {\r\n this.highlightedDates.push({\r\n date: rate.Arrival,\r\n occupied: false,\r\n inBasket: true,\r\n } as HighlightDate);\r\n }\r\n }\r\n }\r\n\r\n if (!isRebuild) {\r\n if (this.highlightedDates.length !== 0) {\r\n this.startAt = DateHelper.convertMomentToDate(moment(this.highlightedDates[0].date));\r\n } else {\r\n this.startAt = DateHelper.convertMomentToDate(this.availableDates[0]);\r\n }\r\n }\r\n }, 'LOA_Availability' as any);\r\n this.availableDates = this.availableDates.sort((a, b) => moment(a, 'DD-MM-YYYY').diff(moment(b, 'DD-MM-YYYY')));\r\n }\r\n\r\n private getBasket(queryParams: Partial) {\r\n const hotelCode = SearchComponent.ParseHotelCode(queryParams);\r\n const arrival = SearchComponent.ParseArrival(queryParams) || new Date();\r\n const stay = SearchComponent.ParseStay(queryParams) || 30;\r\n\r\n let rooms = SearchComponent.ParseRooms(queryParams);\r\n const single = SearchComponent.ParseSingle(queryParams);\r\n if (rooms === undefined) {\r\n rooms = [];\r\n }\r\n\r\n if (hotelCode && arrival && stay && rooms) {\r\n const params: SearchParams = {\r\n hotelCode,\r\n arrival,\r\n stay,\r\n rooms,\r\n single,\r\n ArrivalDate: 0,\r\n ArrivalFullYear: 0,\r\n ArrivalMonthName: '',\r\n DepartueDate: 0,\r\n DepartueFullYear: 0,\r\n DepartueMonthName: '',\r\n BookingFlow: 1,\r\n RateCode: '',\r\n ConferenceRoomCode: '',\r\n };\r\n return this.basketService.create(params);\r\n } else {\r\n const basket = this.basketService.get();\r\n if (basket) {\r\n return basket;\r\n } else {\r\n throw new Error('Basket must not be empty');\r\n }\r\n }\r\n }\r\n\r\n private async buildSeatingData(date: Date, endDate: Date) {\r\n const seatingWrapperArray = [] as SeatingWrapper[];\r\n const seatingArray = [] as SeatingUiModel[];\r\n\r\n if (!this.onlySeating) {\r\n const seatingSpectra = await this.hotelService.GetECommerceSeatings(\r\n this.applicationState.CurrentHotelCode,\r\n this.dateHasBeenClicked ? date : new Date(),\r\n this.dateHasBeenClicked ? endDate : DateHelper.addMonth(endDate, 12),\r\n await this.localeService.getLocale(),\r\n );\r\n\r\n if (seatingSpectra && seatingSpectra.length !== 0) {\r\n const seats = seatingSpectra.filter((x) => x.Rates !== null);\r\n\r\n for (const seatItem of seats) {\r\n const seatingPortal = await this.hotelService.GetECommerceSeatingPortalInfo(\r\n this.applicationState.CurrentHotelCode,\r\n date,\r\n endDate,\r\n seatItem.ItemNumber,\r\n this.isBookingFlow,\r\n this.basket.bookings[0] ? this.basket.bookings[0].RateCode : '',\r\n );\r\n\r\n const info = seatingPortal.find((x) => x.ID === seatItem.ItemNumber);\r\n if (info) {\r\n const seatingUiModel = {\r\n image: info.Image,\r\n characteristics: seatItem.Characteristics,\r\n long: info.Long,\r\n name: info.Name,\r\n sortIndex: info.SortIndex,\r\n seatingPlanId: info.ID,\r\n date: seatItem.Rates[0].Arrival,\r\n } as SeatingUiModel;\r\n\r\n if (this.basket && this.basket.bookings[0] && this.basket.bookings[0].Seatings) {\r\n seatingUiModel.selected =\r\n this.basket.bookings[0].Seatings.filter((x) => x.Id === info.ID).length === 0 ? false : true;\r\n\r\n if (seatingUiModel.selected) {\r\n this.selectedSeating = seatingUiModel;\r\n }\r\n }\r\n seatingArray.push(seatingUiModel);\r\n }\r\n }\r\n\r\n // Populate seatingWrapperArray with seating items of each characteristics\r\n // This can add more than one per characteristics if multiple are selected\r\n // -- in that case, in code below, it will be reduced to only contain the last selected item.\r\n const selectedSeatingPlanId = this.selectedSeating?.seatingPlanId ?? '';\r\n for (const seating of seatingArray) {\r\n const midDate = DateHelper.FromUtcDate(seating.date.toString() as UTCDateString);\r\n const month = DateHelper.getTranslatedMonth(midDate.getMonth());\r\n const target = seating.seatingPlanId === selectedSeatingPlanId;\r\n const wrapperDataExist = seatingWrapperArray.find((x) => x.data.length > 0) !== undefined;\r\n if (wrapperDataExist) {\r\n const wrapper = seatingWrapperArray[0];\r\n if (wrapper) {\r\n // Add current seating to wrapperArray if:\r\n // -- no other seats with same characteristics are in the array\r\n // -- current seating matches the selected seatingPlanId\r\n const matches = wrapper.data.find((x) => x.characteristics == seating.characteristics);\r\n const addToWrapper = matches === undefined || target;\r\n if (addToWrapper) {\r\n wrapper.data.push(seating);\r\n this.sortList(wrapper.data);\r\n }\r\n }\r\n } else {\r\n // Create wrapperArray, and add current seating.\r\n const wrapper = {} as SeatingWrapper;\r\n if (month) {\r\n wrapper.month = month;\r\n wrapper.data = [] as SeatingUiModel[];\r\n wrapper.data.push(seating);\r\n seatingWrapperArray.push(wrapper);\r\n }\r\n }\r\n }\r\n\r\n // Ensure only the last item with selected=true is included in the result\r\n const wrapperData = seatingWrapperArray[0].data;\r\n const selectedItems = wrapperData.filter((item) => item.selected === true);\r\n if (selectedItems.length > 1) {\r\n let count = 0;\r\n for (let i = wrapperData.length - 1; i >= 0; i--) {\r\n if (wrapperData[i].selected && ++count > 1) {\r\n wrapperData.splice(i, 1);\r\n }\r\n }\r\n }\r\n\r\n // Ensure only one of each characteristics is included in the result, favoring items with selected=true\r\n const characteristicsMatches: string[] = [];\r\n seatingWrapperArray[0].data.forEach((item) => {\r\n const count = seatingWrapperArray[0].data.filter((x) => x.characteristics === item.characteristics).length;\r\n if (count > 1) {\r\n characteristicsMatches.push(item.characteristics);\r\n }\r\n });\r\n\r\n if (characteristicsMatches.length > 0) {\r\n seatingWrapperArray[0].data = seatingWrapperArray[0].data.filter((item) => {\r\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)\r\n return !(characteristicsMatches.includes(item.characteristics) && !item.selected);\r\n });\r\n }\r\n\r\n // Set minDate to the day before first item in seatingArray, if not already set and seatingArray has items.\r\n if (this.minDate === undefined && seatingArray.length > 0) {\r\n this.minDate = moment(seatingArray[0].date).add(-1, 'day');\r\n if (this.seatingsAreChoosen) {\r\n this.chosenDate$.next(moment(this.sealectedSeatingDate));\r\n }\r\n }\r\n // set maxDate to the last date in availableDates, if not already set.\r\n if (this.maxDate === undefined) {\r\n this.maxDate = moment(this.availableDates[this.availableDates.length - 1]);\r\n }\r\n }\r\n } else {\r\n const { hotelCode, arrival, stay } = this.basket.params;\r\n\r\n let seatings = [] as SeatingData[];\r\n\r\n const spectraSeatings = await this.hotelService.GetECommerceSeatings(\r\n hotelCode,\r\n arrival,\r\n DateHelper.addDays(arrival, stay),\r\n await this.localeService.getLocale(),\r\n );\r\n\r\n for (const item of spectraSeatings) {\r\n if (seatings.filter((x) => x.Characteristics === item.Characteristics).length === 0) {\r\n seatings.push(item);\r\n }\r\n }\r\n\r\n if (seatings && seatings.length !== 0) {\r\n seatings = seatings.filter((x) => x.Rates);\r\n\r\n for (const item of seatings) {\r\n const seatingPortal = await this.hotelService.GetECommerceSeatingPortalInfo(\r\n this.applicationState.CurrentHotelCode,\r\n arrival,\r\n DateHelper.addDays(arrival, stay),\r\n item.ItemNumber,\r\n this.isBookingFlow,\r\n this.basket.bookings[0] ? this.basket.bookings[0].RateCode : '',\r\n );\r\n\r\n const info = seatingPortal.find((x) => x.ID === item.ItemNumber);\r\n\r\n if (info) {\r\n const seatingUiModel = {} as SeatingUiModel;\r\n seatingUiModel.image = info.Image;\r\n seatingUiModel.characteristics = item.Characteristics;\r\n seatingUiModel.long = info.Long;\r\n seatingUiModel.sortIndex = info.SortIndex;\r\n seatingUiModel.seatingPlanId = info.ID;\r\n seatingUiModel.date = item.Rates[0].Arrival;\r\n seatingUiModel.selected = false;\r\n seatingUiModel.name = info.Name;\r\n\r\n if (this.basket && this.basket.bookings && this.basket.bookings[0].Seatings) {\r\n seatingUiModel.selected =\r\n this.basket.bookings[0].Seatings.filter((x) => x.Id === info.ID).length === 0 ? false : true;\r\n if (seatingUiModel.selected) {\r\n this.selectedSeating = seatingUiModel;\r\n }\r\n }\r\n seatingArray.push(seatingUiModel);\r\n }\r\n }\r\n\r\n for (const seating of seatingArray) {\r\n const midDate = DateHelper.FromUtcDate(seating.date.toString() as UTCDateString);\r\n const month = DateHelper.getTranslatedMonth(midDate.getMonth());\r\n const exist = seatingWrapperArray.find((x) => x.month === month) !== undefined;\r\n if (exist) {\r\n const wrapper = seatingWrapperArray.find((x) => x.month === month);\r\n\r\n if (wrapper) {\r\n const skip = wrapper.data.find((x) => x.seatingPlanId === seating.seatingPlanId) === undefined;\r\n\r\n if (skip) {\r\n wrapper.data.push(seating);\r\n }\r\n }\r\n } else {\r\n const wrapper = {} as SeatingWrapper;\r\n if (month) {\r\n wrapper.month = month;\r\n wrapper.data = [] as SeatingUiModel[];\r\n wrapper.data.push(seating);\r\n seatingWrapperArray.push(wrapper);\r\n }\r\n }\r\n }\r\n } else {\r\n await this.navigationHelper.navigateToPage('/add-on/1');\r\n }\r\n }\r\n\r\n for (const item of seatingWrapperArray) {\r\n item.data = this.sortList(item.data);\r\n }\r\n\r\n const { seatingCode, showList } = this.GetSeatingCodeAndShowListFromQS();\r\n\r\n // Select seating, if seatingPlanId matches seatingCode in QueryString\r\n if (seatingCode !== '') {\r\n const reArrangedSeatingWrapperArray = seatingWrapperArray;\r\n\r\n // Filter or rearrange seatings, depending on showList being true in QueryString or not\r\n if (showList) {\r\n // Rearrange the seatings, so the selected seating is first\r\n\r\n const rearrangedArray = [\r\n // Add the selected seating as first array entry\r\n ...reArrangedSeatingWrapperArray[0].data.filter((item) => item.seatingPlanId === seatingCode),\r\n // Add the rest of the seatings\r\n ...reArrangedSeatingWrapperArray[0].data.filter((item) => item.seatingPlanId !== seatingCode),\r\n ];\r\n\r\n reArrangedSeatingWrapperArray[0].data = rearrangedArray;\r\n } else {\r\n // Filter the seatings, so only the selected seating is included\r\n\r\n const filteredArray = [\r\n // Add the selected seating as only array entry\r\n ...reArrangedSeatingWrapperArray[0].data.filter((item) => item.seatingPlanId === seatingCode),\r\n ];\r\n\r\n if (filteredArray.length > 0) {\r\n reArrangedSeatingWrapperArray[0].data = filteredArray;\r\n }\r\n }\r\n\r\n this.SelectBySeatingCode(reArrangedSeatingWrapperArray, seatingCode);\r\n return reArrangedSeatingWrapperArray;\r\n }\r\n return seatingWrapperArray;\r\n }\r\n\r\n private GetSeatingCodeAndShowListFromQS(): {\r\n seatingCode: string;\r\n showList: boolean;\r\n } {\r\n // Get all QueryString parameter data\r\n const urlParams = new URLSearchParams(window.location.search);\r\n\r\n // Find Querystring parameter names (because they're case sensitive)\r\n const seatingCodeParameterName = Array.from(urlParams.keys()).find((key) => key.toLowerCase() === 'seatingcode');\r\n const showListParameterName = Array.from(urlParams.keys()).find((key) => key.toLowerCase() === 'showlist');\r\n\r\n // Determine if the parameters present set or not\r\n const seatingCodeDefinedResult = seatingCodeParameterName !== undefined && seatingCodeParameterName !== null;\r\n const showListDefinedResult = showListParameterName !== undefined && showListParameterName !== null;\r\n\r\n // Get the parameter values (or use defaults if not set)\r\n const seatingCodeResult = seatingCodeDefinedResult ? urlParams.get(seatingCodeParameterName!) || '' : '';\r\n const showListResult = showListDefinedResult\r\n ? urlParams.get(showListParameterName!)?.toLowerCase() === 'true'\r\n : false;\r\n\r\n return {\r\n seatingCode: seatingCodeResult,\r\n showList: showListResult,\r\n };\r\n }\r\n\r\n private SelectBySeatingCode(seatingsArray: SeatingWrapper[], seatingCode: string) {\r\n let matchingSeatingData = null;\r\n for (const seating of seatingsArray) {\r\n if (seating.data?.length) {\r\n matchingSeatingData = seating.data.find((item) => item.seatingPlanId === seatingCode);\r\n // If a match is found, exit the for-loop.\r\n if (matchingSeatingData) {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // If a match is found, \"click\" it.\r\n if (matchingSeatingData) {\r\n this.onSeatingClick(null, matchingSeatingData);\r\n }\r\n }\r\n\r\n private sortList(array: SeatingUiModel[]) {\r\n const sortedArray = [] as SeatingUiModel[];\r\n\r\n for (const item of array) {\r\n if (sortedArray.length === 0) {\r\n sortedArray.push(item);\r\n } else {\r\n if (sortedArray.filter((x) => x.sortIndex > item.sortIndex).length === 0) {\r\n sortedArray.push(item);\r\n } else {\r\n const object = sortedArray.filter((x) => x.sortIndex > item.sortIndex)[0];\r\n const index = sortedArray.indexOf(object);\r\n\r\n sortedArray.splice(index, 0, item);\r\n }\r\n }\r\n }\r\n return sortedArray;\r\n }\r\n\r\n private async buildAvailibleDates(bookings: Booking[]) {\r\n if (this.selectedSeating) {\r\n const selectedCharacteristics = this.selectedSeating.characteristics;\r\n const firstDate = DateHelper.FromUtcDate(this.selectedSeating.date.toString() as UTCDateString);\r\n let start = DateHelper.getFirstDateOfMonth(firstDate);\r\n let end = DateHelper.getLastDateOfMonth(firstDate);\r\n\r\n let res: SeatingData[] | undefined;\r\n if (!this.onlySeating) {\r\n if (this.chosenDate$.value) {\r\n const calendarDate = DateHelper.convertMomentToDate(this.chosenDate$.value);\r\n start = calendarDate;\r\n end = calendarDate;\r\n }\r\n\r\n res = await this.hotelService.GetECommerceSeatings(\r\n this.applicationState.CurrentHotelCode,\r\n start,\r\n end,\r\n await this.localeService.getLocale(),\r\n );\r\n } else {\r\n const { hotelCode, arrival, stay } = this.basket.params;\r\n end = DateHelper.addDays(arrival, stay);\r\n start = arrival;\r\n res = await this.hotelService.GetECommerceSeatings(hotelCode, start, end, await this.localeService.getLocale());\r\n }\r\n\r\n if (res) {\r\n res = res.filter((x) => x.Rates !== null);\r\n }\r\n\r\n const seatings: SeatingTimesUiModel[] = [];\r\n try {\r\n if (res) {\r\n for (const specSeat of res.filter((x) => x.Characteristics === selectedCharacteristics)) {\r\n const seatingPortal = await this.hotelService.GetECommerceSeatingPortalInfo(\r\n this.applicationState.CurrentHotelCode,\r\n start,\r\n end,\r\n specSeat.ItemNumber,\r\n this.isBookingFlow,\r\n this.basket.bookings[0] ? this.basket.bookings[0].RateCode : '',\r\n );\r\n const seatInfo = seatingPortal.find((x) => x.ID === specSeat.ItemNumber);\r\n\r\n if (seatInfo) {\r\n for (const seat of seatInfo.SeatItems) {\r\n for (const item of specSeat.Rates) {\r\n const seatingModel = {} as SeatingTimesUiModel;\r\n const midDate = DateHelper.FromUtcDate(item.Arrival.toString() as UTCDateString);\r\n const month = DateHelper.getTranslatedMonth(midDate.getMonth());\r\n const time = DateHelper.getTimeFromUtcDate(item.Arrival.toString() as UTCDateTimeString);\r\n\r\n seatingModel.day = midDate.getDate().toString();\r\n\r\n if (seatings.filter((x) => x.arrival === item.Arrival).length === 0) {\r\n seatingModel.month = month;\r\n seatingModel.year = midDate.getFullYear().toString();\r\n } else {\r\n seatingModel.multipleDays = true;\r\n }\r\n\r\n seatingModel.arrival = item.Arrival;\r\n seatingModel.price = seat.Price;\r\n seatingModel.name = specSeat.Description;\r\n seatingModel.vareNr = seat.VareNr;\r\n seatingModel.tickets = this.buildAvailibleTickets(item.MaxPers);\r\n seatingModel.ticketSelected = seatingModel.tickets[0];\r\n seatingModel.AQC = specSeat.AQC;\r\n\r\n if (seatingModel.tickets.length === 0) {\r\n continue;\r\n }\r\n\r\n const seating = seatings.find(\r\n (x) =>\r\n x.day === midDate.getDate().toString() &&\r\n x.month === month &&\r\n x.year === midDate.getFullYear().toString(),\r\n );\r\n\r\n const currentSeat = seatings.find(\r\n (x) => x.vareNr === seat.VareNr && x.day === midDate.getDate().toString(),\r\n );\r\n\r\n if (seating) {\r\n if (currentSeat) {\r\n const clockModel = {} as ClockUiModel;\r\n clockModel.time = time;\r\n clockModel.date = item.Arrival;\r\n clockModel.maxAvailible = item.MaxPers;\r\n\r\n const index = currentSeat.clock.filter(\r\n (x) => x.time && x.date.toString() === item.Arrival.toString(),\r\n );\r\n\r\n if (index.length === 0) {\r\n // Only push if no other has been pushed earlier (index.length is 0)\r\n currentSeat.clock.push(clockModel);\r\n }\r\n } else {\r\n if (seatingModel.clock === undefined) {\r\n seatingModel.clock = [] as ClockUiModel[];\r\n }\r\n\r\n const clockModel = {} as ClockUiModel;\r\n\r\n clockModel.time = time;\r\n clockModel.date = item.Arrival;\r\n clockModel.maxAvailible = item.MaxPers;\r\n\r\n seatingModel.clock.push(clockModel);\r\n seatings.push(seatingModel);\r\n }\r\n } else {\r\n seatingModel.clock = [] as ClockUiModel[];\r\n const clockModel = {} as ClockUiModel;\r\n\r\n clockModel.time = time;\r\n clockModel.date = item.Arrival;\r\n clockModel.maxAvailible = item.MaxPers;\r\n\r\n seatingModel.clock.push(clockModel);\r\n seatings.push(seatingModel);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (\r\n this.seatingsAreChoosen ||\r\n (this.basket &&\r\n this.basket.bookings[0] &&\r\n this.basket.bookings[0].Seatings &&\r\n this.basket.bookings[0].Seatings.length !== 0)\r\n ) {\r\n for (const item of bookings) {\r\n if (item.Seatings) {\r\n this.buildSelectedSeatsFromBasket(item.Seatings, seatings);\r\n }\r\n }\r\n }\r\n const sortedDates = seatings.sort((a, b) => {\r\n const dateA = new Date(a.arrival);\r\n const dateB = new Date(b.arrival);\r\n return dateA.getDate() - dateB.getDate();\r\n });\r\n return sortedDates;\r\n }\r\n return [];\r\n } catch (err: any) {\r\n this.log.error(`RoomRoute failed to load seatings. ${err.message}`);\r\n return undefined;\r\n }\r\n }\r\n return [];\r\n }\r\n}\r\n\r\nexport interface SeatingWrapper {\r\n month: string;\r\n data: SeatingUiModel[];\r\n}\r\n\r\nexport interface SeatingUiModel {\r\n image: string;\r\n long: string;\r\n name: string;\r\n characteristics: string;\r\n date: Date;\r\n seatingPlanId: string;\r\n sortIndex: number;\r\n tableTickets: TableTickets[];\r\n tableDetails: SeatingTableDetails;\r\n selected: boolean;\r\n seatingTimesUiModel: SeatingTimesUiModel[] | SeatingRate[] | undefined;\r\n AQC: AQC;\r\n}\r\n\r\nexport interface TableTickets {\r\n arrival: Date;\r\n maxPers: number;\r\n}\r\n\r\nexport interface SeatingTableDetails {\r\n vareNr: string;\r\n price: number;\r\n rateCode: string;\r\n}\r\n\r\nexport interface SeatingTimesUiModel {\r\n arrival: Date;\r\n month: string;\r\n day: string;\r\n year: string;\r\n clock: ClockUiModel[];\r\n price: number;\r\n name: string;\r\n tickets: number[];\r\n ticketSelected: number;\r\n totalPrice: number;\r\n vareNr: string;\r\n ID: number;\r\n SelectedseatId: string | undefined;\r\n SelectedName: string | undefined;\r\n SelectedDate: Date | undefined;\r\n multipleDays: boolean;\r\n AQC: AQC | undefined;\r\n}\r\n\r\nexport interface ClockUiModel {\r\n date: Date;\r\n time: string | null;\r\n maxAvailible: number;\r\n selectedTime: string | undefined;\r\n}\r\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';\r\nimport { ApplicationStateService, BasketService, HotelService } from '../../../core';\r\nimport { DateHelper } from '../../../helpers';\r\nimport { NavigationHelper } from '../../../helpers/navigation-helper';\r\n\r\n@Component({\r\n selector: 'app-guests',\r\n templateUrl: './guests.component.html',\r\n})\r\nexport class GuestsComponent implements OnInit, OnDestroy {\r\n guestCounter = 2;\r\n\r\n constructor(\r\n private applicationState: ApplicationStateService,\r\n private basketService: BasketService,\r\n private navigationHelper: NavigationHelper,\r\n private hotelService: HotelService,\r\n ) {}\r\n\r\n async ngOnInit() {\r\n await this.canUseModule();\r\n\r\n document.body.classList.remove('addBackGround');\r\n document.body.classList.remove('addBackGroundWithAnimation');\r\n document.body.style.backgroundImage = '';\r\n await this.prepareNavigation();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.navigationHelper.resetNextPage();\r\n }\r\n\r\n async prepareNavigation() {\r\n await this.navigationHelper.continueMobileNavigationbar(false, true, '/guests', '/products', {\r\n queryParams: {\r\n HotelCode: this.applicationState.CurrentHotelCode,\r\n ArrivalDate: DateHelper.toServerDateFormatString(new Date()),\r\n LengthOfStay: 30,\r\n guest: this.guestCounter,\r\n },\r\n });\r\n }\r\n\r\n async canUseModule() {\r\n await this.hotelService.BuildApplicationState();\r\n\r\n if (!this.applicationState.UseTableReservation) {\r\n await this.navigationHelper.navigateToPage('/landing-page');\r\n }\r\n }\r\n\r\n async clearBasket() {\r\n this.basketService.basketBadgeNumberSet = '0';\r\n await this.goBack();\r\n }\r\n\r\n async addGuest() {\r\n this.guestCounter = this.guestCounter + 1;\r\n await this.prepareNavigation();\r\n }\r\n\r\n async next() {\r\n await this.navigationHelper.continue('/guests', '/products', {\r\n queryParams: {\r\n HotelCode: this.applicationState.CurrentHotelCode,\r\n ArrivalDate: DateHelper.toServerDateFormatString(new Date()),\r\n LengthOfStay: 30,\r\n guest: this.guestCounter,\r\n },\r\n });\r\n }\r\n\r\n async goBack() {\r\n await this.navigationHelper.goBack();\r\n }\r\n\r\n removeGuest() {\r\n if (this.guestCounter > 1) {\r\n this.guestCounter = this.guestCounter - 1;\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n {{ 'COM_Back' | t | async }}\r\n {{ 'COM_Continue' | t | async }}\r\n\r\n

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

\r\n

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

\r\n\r\n

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

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

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

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

    \r\n\r\n

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

    \r\n\r\n

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

    \r\n\r\n \r\n\r\n
    \r\n \r\n
    \r\n
      \r\n \r\n \r\n
    • \r\n

      {{ calendarDates.currentMonth | t | async }}

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

    {{ 'CAL_Occupied' | t | async }}

    \r\n
    \r\n

    {{ 'CAL_Available' | t | async }}

    \r\n
    \r\n

    {{ 'CAL_NotPossible' | t | async }}

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

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

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

    {{ room.item.name }}

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

    \r\n \r\n

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

    {{ 'SEA_Time' | t | async }}

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

    {{ 'COM_TableNumberOfGuestsForProduct' | t | async }}

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

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

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

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

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

    {{ state.HotelBasketInfo.Name }}

    \r\n

    {{ state.HotelBasketInfo.Address }}

    \r\n

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

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

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

    \r\n

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

    \r\n

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

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

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

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

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

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

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

    \r\n

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

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

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

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

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

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

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

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

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

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

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

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

    - {{ addon.Name }}

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

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

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

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

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

    {{ table.Name }}

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

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

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

    {{ card.Name }}

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

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

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

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

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

    {{ 'LOA_Availability' | t | async }}

    \r\n
    \r\n
    \r\n
    \r\n
    {{ day }}
    \r\n
    \r\n
    \r\n
    \r\n 1 ? 'l6' : 'l12' }}\">\r\n \r\n
    \r\n \r\n
    {{ m.name }}
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    {{ m.name }}
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    {{ day }}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {{ day.date.getDate() }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n {{ 'CAL_Occupied' | t | async }}\r\n
    \r\n
    \r\n \r\n {{ 'CAL_Arrival' | t | async }}\r\n
    \r\n
    \r\n \r\n {{ 'CAL_Departure' | t | async }}\r\n
    \r\n
    \r\n \r\n\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-checkbox',\r\n templateUrl: './checkbox.component.html',\r\n})\r\nexport class CheckboxComponent {\r\n isChecked = false;\r\n @Output() changed = new EventEmitter();\r\n\r\n @Input()\r\n set checked(checked: boolean) {\r\n this.isChecked = checked;\r\n }\r\n\r\n constructor() {}\r\n\r\n onClick() {\r\n this.isChecked = !this.isChecked;\r\n this.changed.emit(this.isChecked);\r\n }\r\n}\r\n","
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n","import { Component, ContentChild, ElementRef, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\r\nimport { LogService } from '@com/logging';\r\n\r\n@Component({\r\n selector: 'app-dropdown',\r\n templateUrl: './dropdown.component.html',\r\n})\r\nexport class DropdownComponent {\r\n show = false;\r\n listClassName = 'a-dropdown-list'; // required for fix for IE focus event\r\n @Output() changed = new EventEmitter();\r\n\r\n @Input() data: T[] = [];\r\n @Input() value: T | undefined;\r\n @Input() flexsible: boolean | undefined;\r\n\r\n @ContentChild('itemTemplate', { static: false }) itemTemplate: TemplateRef | undefined;\r\n @ContentChild('valueTemplate', { static: false }) valueTemplate: TemplateRef | undefined;\r\n\r\n constructor(private log: LogService) {}\r\n\r\n onOverlayClick() {\r\n this.log.debug('Dropdown onOverlayClick()');\r\n this.show = false;\r\n }\r\n\r\n onFocusOut(e: MouseEvent) {\r\n this.log.debug('Dropdown onFocusOut()');\r\n // fix for IE focusout event\r\n if (e.relatedTarget && (e.relatedTarget as HTMLElement).className !== this.listClassName) {\r\n this.onOverlayClick();\r\n }\r\n }\r\n\r\n onItemClick(item: T | undefined) {\r\n this.log.debug('Dropdown onItemClick()', item);\r\n this.show = false;\r\n this.value = item;\r\n this.changed.emit(this.value);\r\n }\r\n\r\n onValueClick() {\r\n this.log.debug('Dropdown onValueClick()');\r\n this.show = !this.show;\r\n }\r\n\r\n onKeyUp(keyCode: number) {\r\n this.log.debug(`Dropdown onKeyUp(${keyCode})`);\r\n switch (keyCode) {\r\n case 32:\r\n this.onValueClick();\r\n break; // space\r\n // case 38: this.selectPrevItem(); break; // up\r\n // case 40: this.selectNextItem(); break; // down\r\n }\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n","import {\r\n Component,\r\n ContentChild,\r\n ElementRef,\r\n HostListener,\r\n Input,\r\n OnChanges,\r\n SimpleChanges,\r\n TemplateRef,\r\n} from '@angular/core';\r\nimport { LogService } from '@com/logging';\r\n\r\n@Component({\r\n selector: 'app-expandable-media-list',\r\n templateUrl: './expandable-media-list.component.html',\r\n})\r\nexport class ExpandableMediaListComponent implements OnChanges {\r\n // eslint-disable-next-line no-use-before-define\r\n @Input() usePageContainer = true;\r\n @Input() insideDetails = false;\r\n @Input()\r\n set data(data: T[] | undefined) {\r\n this._data = data || [];\r\n }\r\n\r\n private _data: T[] = [];\r\n\r\n groupList: T[][] = [];\r\n\r\n @Input() selected: T | undefined;\r\n\r\n @ContentChild('itemTemplate', { static: false }) itemTemplate: TemplateRef | undefined;\r\n @ContentChild('selectedItemTemplate', { static: false })\r\n selectedItemTemplate: TemplateRef | undefined;\r\n\r\n constructor(private log: LogService) {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.groupList = ExpandableMediaListComponent.buildGroupList(\r\n this._data,\r\n window.innerWidth,\r\n this.usePageContainer !== true ? 2 : 3,\r\n );\r\n }\r\n\r\n @HostListener('window:resize')\r\n onResize() {\r\n this.log.trace('ExpandableMediaList onResize()');\r\n this.groupList = ExpandableMediaListComponent.buildGroupList(\r\n this._data,\r\n window.outerWidth,\r\n this.usePageContainer !== true ? 2 : 3,\r\n );\r\n }\r\n\r\n static buildGroupList(list: T[], width: number, splitterLength: number) {\r\n const splitter = width >= 992 ? splitterLength : width >= 600 ? 2 : 1;\r\n const result: T[][] = [];\r\n let group: T[] = [];\r\n list.forEach((item) => {\r\n if (group.length < splitter) {\r\n group.push(item);\r\n } else {\r\n result.push(group);\r\n group = [item];\r\n }\r\n });\r\n result.push(group);\r\n return result;\r\n }\r\n}\r\n","
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n","import {\r\n Component,\r\n ContentChild,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n TemplateRef,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { LogService } from '@com/logging';\r\n\r\n@Component({\r\n selector: 'app-popup',\r\n templateUrl: './popup.component.html',\r\n})\r\nexport class PopupComponent {\r\n shouldShow = false;\r\n left = 0;\r\n @Input() align?: 'left' | 'right' | 'center';\r\n\r\n @Output() opened = new EventEmitter();\r\n @Output() closed = new EventEmitter();\r\n\r\n @ContentChild('itemTemplate', { static: false }) itemTemplate: TemplateRef | undefined;\r\n @ContentChild('contentTemplate', { static: false }) contentTemplate: TemplateRef | undefined;\r\n @ViewChild('popupContent', { static: false }) popupContent: ElementRef | undefined;\r\n @ViewChild('popupItem', { static: false }) popupItem: ElementRef | undefined;\r\n\r\n constructor(private log: LogService) {}\r\n\r\n @Input() set show(shouldShow: boolean) {\r\n this.applyShow(shouldShow);\r\n }\r\n\r\n onItemClick() {\r\n this.log.debug(`Popup[${this.shouldShow}] onItemClick()`);\r\n this.applyShow(!this.shouldShow);\r\n }\r\n\r\n onOverlayClick() {\r\n this.log.debug(`Popup[${this.shouldShow}] onOverlayClick()`);\r\n this.applyShow(false);\r\n }\r\n\r\n private applyShow(shouldShow: boolean) {\r\n if (this.shouldShow !== shouldShow) {\r\n this.left = this.calculatePosition();\r\n this.shouldShow = shouldShow;\r\n if (shouldShow) {\r\n this.opened.emit();\r\n } else {\r\n this.closed.emit();\r\n }\r\n }\r\n }\r\n\r\n private calculatePosition() {\r\n if (this.popupItem && this.popupItem.nativeElement) {\r\n const width = this.popupItem.nativeElement.clientWidth;\r\n switch (this.align) {\r\n case 'left':\r\n return 0;\r\n case 'right':\r\n return width;\r\n default:\r\n return 0.5 * width;\r\n }\r\n }\r\n return 0;\r\n }\r\n}\r\n","
    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { LogService } from '../../../../projects/com-logging/src/public-api';\r\nimport { theme } from '../../../styles/theme';\r\nimport {\r\n ApplicationStateService,\r\n BasketQueryParams,\r\n ConfigService,\r\n HotelCodeString,\r\n HotelService,\r\n Loader,\r\n LocaleService,\r\n} from '../../core';\r\n\r\n@Injectable()\r\nexport class DesignConfiguration {\r\n constructor(\r\n private loader: Loader,\r\n private hotelService: HotelService,\r\n private applicationState: ApplicationStateService,\r\n private log: LogService,\r\n private config: ConfigService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private localeService: LocaleService,\r\n ) {}\r\n\r\n async addPageBackground() {\r\n await this.loader.using(\r\n async () => {\r\n await this.hotelService.BuildApplicationState();\r\n const res = this.applicationState.BackGroundimage;\r\n if (res && !res.includes('no-image')) {\r\n if (this.applicationState.AnimateBackground === 'false') {\r\n document.body.classList.remove('addBackGroundWithAnimation');\r\n document.body.classList.add('addBackGround');\r\n } else {\r\n document.body.classList.add('addBackGroundWithAnimation');\r\n }\r\n document.body.style.backgroundImage = 'url(' + res + ')';\r\n const w = document.documentElement.clientWidth;\r\n if (w <= 1170) {\r\n document.body.classList.add('addBackGround');\r\n document.body.classList.remove('addBackGroundWithAnimation');\r\n }\r\n } else {\r\n document.body.classList.remove('addBackGround');\r\n document.body.style.backgroundImage = '';\r\n }\r\n },\r\n 'LOA_HotelInformation',\r\n false,\r\n );\r\n }\r\n\r\n addProductScrolling() {\r\n const w = document.documentElement.clientWidth;\r\n if (w <= 1170) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n async applyTheme() {\r\n await this.loader.using(\r\n async () => {\r\n try {\r\n const url = new URL(window.location.href);\r\n const hotelCode = url.searchParams.get('HotelCode')\r\n ? url.searchParams.get('HotelCode')\r\n : this.applicationState.CurrentHotelCode;\r\n if (hotelCode) {\r\n const res = await this.hotelService.GetECommerceDepartmentInformation(\r\n this.applicationState.CurrentHotelCode,\r\n await this.localeService.getLocale(),\r\n );\r\n this.applicationState.ApplicationColor = res.Settings.CustomColor as string;\r\n this.applicationState.ApplicationColorTextIcon = res.Settings.CustomColorTextIcon as string;\r\n }\r\n await this.hotelService.BuildApplicationState();\r\n this.applicationState.ApplicationColor = await this.RestrictColor(\r\n this.applicationState.ApplicationColor,\r\n (\r\n await this.config.getAppSettings()\r\n ).PrimaryColor,\r\n );\r\n this.applicationState.ApplicationColorTextIcon = await this.RestrictColor(\r\n this.applicationState.ApplicationColorTextIcon,\r\n (\r\n await this.config.getAppSettings()\r\n ).PrimaryColor,\r\n );\r\n\r\n document.documentElement.style.setProperty(\r\n '--primary-application-color',\r\n this.applicationState.ApplicationColor,\r\n );\r\n document.documentElement.style.setProperty(\r\n '--primary-application-color-text-icon',\r\n this.applicationState.ApplicationColorTextIcon,\r\n );\r\n document.documentElement.style.setProperty(\r\n '--primary-application-font',\r\n this.applicationState.ApplicationFont,\r\n );\r\n\r\n this.config.applyStyles(theme(this.applicationState.ApplicationColor));\r\n this.decideDynamicTextColor(this.applicationState.ApplicationColor);\r\n } catch (err: any) {\r\n this.log.fatal(`App applyTheme() failed. ${err.message}`);\r\n }\r\n },\r\n undefined,\r\n false,\r\n );\r\n }\r\n\r\n async applyHotelChange(hotelCode: HotelCodeString) {\r\n const queryParams: Partial = {\r\n HotelCode: hotelCode,\r\n };\r\n await this.router.navigate([], {\r\n replaceUrl: true,\r\n relativeTo: this.route,\r\n queryParamsHandling: 'merge',\r\n queryParams,\r\n });\r\n }\r\n\r\n private async RestrictColor(color: string, fallback: string) {\r\n const RestrictedColors = ['', 'none', 'inherit', 'initial'];\r\n return RestrictedColors.some((restrictedColor) => restrictedColor === color) ? fallback : color;\r\n }\r\n\r\n private decideDynamicTextColor(color: string) {\r\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(color);\r\n\r\n let textColor = getComputedStyle(document.documentElement).getPropertyValue('--color-dynamic');\r\n\r\n if (result !== null) {\r\n const R = parseInt(result[1], 16);\r\n const G = parseInt(result[2], 16);\r\n const B = parseInt(result[3], 16);\r\n\r\n const luminance = (0.299 * R + 0.587 * G + 0.114 * B) / 255;\r\n\r\n if (luminance > 0.5) {\r\n textColor = '#000000';\r\n } else {\r\n textColor = '#FFFFFF';\r\n }\r\n }\r\n\r\n this.applicationState.ApplicationTextColor = textColor;\r\n document.documentElement.style.setProperty('--color-dynamic', this.applicationState.ApplicationTextColor);\r\n }\r\n}\r\n","import { AfterViewInit, ChangeDetectorRef, Directive, ElementRef, Input, Output } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Directive({\r\n selector: '[appMaxHeight]',\r\n})\r\nexport class MaxHeightDirective implements AfterViewInit {\r\n @Output() isMaxHeight = new BehaviorSubject(false);\r\n @Input() maxHeight = 200;\r\n\r\n constructor(private el: ElementRef, private cdRef: ChangeDetectorRef) {}\r\n\r\n ngAfterViewInit() {\r\n if (this.el.nativeElement) {\r\n const { height } = this.el.nativeElement.getBoundingClientRect();\r\n this.isMaxHeight.next(height > 200);\r\n this.cdRef.detectChanges();\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'char' })\r\nexport class CharPipe implements PipeTransform {\r\n static ConvertToChar(index: number) {\r\n return String.fromCharCode(index + 65 /*A*/);\r\n }\r\n\r\n transform(index: number | undefined) {\r\n return typeof index === 'number' ? CharPipe.ConvertToChar(index) : '';\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\nimport { map } from 'rxjs/operators';\r\nimport { LocaleService } from 'src/app/core';\r\nimport { /*SpectraDate,*/ AspDateString, DateHelper } from 'src/app/helpers';\r\n\r\n@Pipe({ name: 'date' })\r\nexport class DatePipe implements PipeTransform {\r\n constructor(private ls: LocaleService) {}\r\n\r\n transform(date: /*SpectraDate | */ Date | undefined, daysShift: number | undefined) {\r\n return this.ls.translations$.pipe(\r\n map((translations) => {\r\n /*if (date instanceof SpectraDate) {\r\n const d = daysShift ? date.addDays(daysShift) : date;\r\n const month = translations[\r\n `CAL_M${DateHelper.format(d, 'MM')}` as 'CAL_M01'\r\n ].substring(0, 3);\r\n return DateHelper.format(d, `DD[.] [${month}] YYYY`);\r\n }\r\n\r\n else */ if (date instanceof Date) {\r\n const d = daysShift ? DateHelper.addDays(date, daysShift) : date;\r\n const month = translations[`CAL_M${DateHelper.format(d, 'MM')}` as 'CAL_M01'].substring(0, 3);\r\n return DateHelper.format(d, `DD[.] [${month}] YYYY`);\r\n } else if (typeof date === 'string') {\r\n const _date = DateHelper.FromAspDate(date as AspDateString);\r\n const d = daysShift ? DateHelper.addDays(_date, daysShift) : _date;\r\n const month = translations[`CAL_M${DateHelper.format(d, 'MM')}` as 'CAL_M01'].substring(0, 3);\r\n return DateHelper.format(d, `DD[.] [${month}] YYYY`);\r\n }\r\n\r\n return '';\r\n }),\r\n );\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\nimport { map } from 'rxjs/operators';\r\nimport { LocaleService } from 'src/app/core';\r\nimport { GuestType, RoomGuests } from 'src/app/helpers';\r\n\r\n@Pipe({ name: 'guests' })\r\nexport class GuestsPipe implements PipeTransform {\r\n constructor(private ls: LocaleService) {}\r\n\r\n transform(guests: RoomGuests | undefined) {\r\n return this.ls.translations$.pipe(\r\n map((translations) => {\r\n if (guests instanceof RoomGuests) {\r\n const adults = guests.get(GuestType.Adult);\r\n let text = `${adults} ${adults === 1 ? translations.COM_Adult : translations.COM_Guest_10}`;\r\n const seniors = guests.get(GuestType.Senior);\r\n if (seniors > 0) {\r\n text += `, ${seniors} ${translations.COM_Guest_11}`;\r\n }\r\n const children = guests.get(GuestType.Child);\r\n if (children > 0) {\r\n text += `, ${children} ${children === 1 ? translations.COM_Child : translations.COM_Guest_8}`;\r\n }\r\n const infants = guests.get(GuestType.Infant);\r\n if (infants > 0) {\r\n text += `, ${infants} ${translations.COM_Guest_7}`;\r\n }\r\n const teens = guests.get(GuestType.UnknownType1);\r\n if (teens > 0) {\r\n text += `, ${teens} ${translations.COM_Guest_9}`;\r\n }\r\n return text;\r\n }\r\n return '';\r\n }),\r\n );\r\n }\r\n}\r\n","export * from './guests.pipe';\r\nexport * from './date.pipe';\r\nexport * from './char.pipe';\r\nexport * from './number.pipe';\r\nexport * from './price.pipe';\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'number' })\r\nexport class NumberPipe implements PipeTransform {\r\n /**\r\n * @param format should looks like '(h )(d,)(D2)' where\r\n * after `h` is ` ` and it is thousands delimiter\r\n * after `d` is `,` and it is decimal part delimiter\r\n * after `D` is `2` and it is how many decimal number is used\r\n */\r\n static Parse(amount: string, format: string) {\r\n if (!amount) {\r\n return null;\r\n }\r\n const f = this.ParseFormat(format);\r\n return parseFloat(amount.replace(new RegExp(f.h, 'g'), '').replace(f.d, '.'));\r\n }\r\n\r\n /**\r\n * @param format should looks like '(h )(d,)(D2)' where\r\n * after `h` is ` ` and it is thousands delimiter\r\n * after `d` is `,` and it is decimal part delimiter\r\n * after `D` is `2` and it is how many decimal number is used\r\n */\r\n static Format(amount: number, format = '(h.)(d,)(D2)') {\r\n if (typeof amount !== 'number') {\r\n return '';\r\n }\r\n const f = this.ParseFormat(format);\r\n const parts = amount.toFixed(f.D).split(/[.,]/);\r\n return (\r\n parts[0]\r\n .split('')\r\n .reverse()\r\n .reduce((a, b, i) => (i % 3 ? b : b + f.h) + a) + (f.D ? f.d + parts[1] : '')\r\n );\r\n }\r\n\r\n private static ParseFormat(format: string) {\r\n const f = { D: 2, d: ',', h: ' ' };\r\n format.split(/[()]/).forEach((n) => {\r\n switch (n[0]) {\r\n case 'D':\r\n f.D = Math.max(parseInt(n.substr(1), 10), 0);\r\n break; // numbers after dot\r\n case 'd':\r\n f.d = n.substr(1) || f.d;\r\n break; // number delimiter('.' or ',')\r\n case 'h':\r\n f.h = n.substr(1) || f.h;\r\n break; // large number parts delimiter: 1000000 => 1 000 000\r\n default:\r\n }\r\n });\r\n return f;\r\n }\r\n\r\n transform(value: number | string | null | undefined, format?: string) {\r\n if (value === null || value === undefined) {\r\n return undefined;\r\n }\r\n if (typeof value === 'string') {\r\n value = parseFloat(value.replace(',', '.'));\r\n }\r\n return NumberPipe.Format(value, format);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { ApplicationStateService } from 'src/app/core';\r\nimport { NumberPipe } from './number.pipe';\r\n\r\n@Pipe({ name: 'price' })\r\nexport class PricePipe implements PipeTransform {\r\n constructor(private applicationState: ApplicationStateService) {}\r\n\r\n async transform(value: number | string | null | undefined) {\r\n if (value === null || value === undefined) {\r\n return undefined;\r\n }\r\n if (typeof value === 'string') {\r\n value = parseFloat(value.replace(',', '.'));\r\n }\r\n return `${NumberPipe.Format(value)} ${this.applicationState.HotelCurrency}`;\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\n\r\nimport { TranslationModule } from 'src/app/modules/translation';\r\n\r\nimport { CalendarInputComponent } from './components/calendar-input/calendar-input.component';\r\nimport { CalendarComponent } from './components/calendar/calendar.component';\r\nimport { CheckboxComponent } from './components/checkbox/checkbox.component';\r\nimport { DropdownComponent } from './components/dropdown/dropdown.component';\r\nimport { ExpandableMediaListComponent } from './components/expandable-media-list/expandable-media-list.component';\r\nimport { PopupComponent } from './components/popup/popup.component';\r\nimport { SlideDownComponent } from './components/animation/slide-down/slide-down.component';\r\n\r\nimport { CharPipe, DatePipe, GuestsPipe, NumberPipe, PricePipe } from './pipes';\r\n\r\nimport {\r\n EqualToValidatorDirective,\r\n HasLowerValidatorDirective,\r\n HasNumberValidatorDirective,\r\n HasUpperValidatorDirective,\r\n} from './validators';\r\n\r\nimport { MaxHeightDirective } from './directives/max-height.directive';\r\n\r\n@NgModule({\r\n imports: [CommonModule, FormsModule, ReactiveFormsModule, HttpClientModule, RouterModule, TranslationModule],\r\n declarations: [\r\n GuestsPipe,\r\n DatePipe,\r\n CharPipe,\r\n NumberPipe,\r\n PricePipe,\r\n CalendarComponent,\r\n CheckboxComponent,\r\n DropdownComponent,\r\n CalendarInputComponent,\r\n ExpandableMediaListComponent,\r\n PopupComponent,\r\n EqualToValidatorDirective,\r\n HasLowerValidatorDirective,\r\n HasUpperValidatorDirective,\r\n HasNumberValidatorDirective,\r\n MaxHeightDirective,\r\n SlideDownComponent,\r\n ],\r\n exports: [\r\n GuestsPipe,\r\n DatePipe,\r\n CharPipe,\r\n NumberPipe,\r\n PricePipe,\r\n CalendarComponent,\r\n CheckboxComponent,\r\n DropdownComponent,\r\n CalendarInputComponent,\r\n ExpandableMediaListComponent,\r\n PopupComponent,\r\n EqualToValidatorDirective,\r\n HasLowerValidatorDirective,\r\n HasUpperValidatorDirective,\r\n HasNumberValidatorDirective,\r\n MaxHeightDirective,\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n HttpClientModule,\r\n RouterModule,\r\n TranslationModule,\r\n SlideDownComponent,\r\n ],\r\n})\r\nexport class SharedModule {}\r\n","import { Directive, Input, OnDestroy } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, Validator, ValidatorFn } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\n\r\nexport const equalToValidator = (value: AbstractControl | undefined): ValidatorFn => {\r\n const equalToControl: AbstractControl | undefined = value;\r\n return (control: AbstractControl) => {\r\n if (equalToControl) {\r\n const appEqualTo = equalToControl.value === control.value;\r\n return appEqualTo ? null : { appEqualTo: { value: equalToControl.value } };\r\n }\r\n return { appEqualTo: { value: undefined } };\r\n };\r\n};\r\n\r\n@Directive({\r\n selector: '[appEqualTo]',\r\n providers: [\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: EqualToValidatorDirective,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class EqualToValidatorDirective implements Validator, OnDestroy {\r\n private subscription: Subscription | undefined;\r\n private equalToControl: AbstractControl | undefined;\r\n private currentControl: AbstractControl | undefined;\r\n\r\n @Input() set appEqualTo(equalToControl: AbstractControl | undefined) {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n if (equalToControl) {\r\n this.subscription = equalToControl.valueChanges.subscribe(() => {\r\n if (this.currentControl) {\r\n this.currentControl.updateValueAndValidity();\r\n }\r\n });\r\n }\r\n this.equalToControl = equalToControl;\r\n }\r\n\r\n validate(control: AbstractControl) {\r\n this.currentControl = control;\r\n return equalToValidator(this.equalToControl)(control);\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n}\r\n","import { Directive } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, Validator, ValidatorFn } from '@angular/forms';\r\n\r\nexport const hasLowerValidator = (): ValidatorFn => (control: AbstractControl) => {\r\n const appHasLower = /[a-z]/.test(control.value);\r\n return appHasLower ? null : { appHasLower: { value: control.value } };\r\n};\r\n\r\n@Directive({\r\n selector: '[appHasLower]',\r\n providers: [\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: HasLowerValidatorDirective,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class HasLowerValidatorDirective implements Validator {\r\n validate(control: AbstractControl) {\r\n return hasLowerValidator()(control);\r\n }\r\n}\r\n","import { Directive } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, Validator, ValidatorFn } from '@angular/forms';\r\n\r\nexport const hasNumberValidator = (): ValidatorFn => (control: AbstractControl) => {\r\n const appHasNumber = /[0-9]/.test(control.value);\r\n return appHasNumber ? null : { appHasNumber: { value: control.value } };\r\n};\r\n\r\n@Directive({\r\n selector: '[appHasNumber]',\r\n providers: [\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: HasNumberValidatorDirective,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class HasNumberValidatorDirective implements Validator {\r\n validate(control: AbstractControl) {\r\n return hasNumberValidator()(control);\r\n }\r\n}\r\n","import { Directive } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, Validator, ValidatorFn } from '@angular/forms';\r\n\r\nexport const hasUpperValidator = (): ValidatorFn => (control: AbstractControl) => {\r\n const appHasUpper = /[A-Z]/.test(control.value);\r\n return appHasUpper ? null : { appHasUpper: { value: control.value } };\r\n};\r\n\r\n@Directive({\r\n selector: '[appHasUpper]',\r\n providers: [\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: HasUpperValidatorDirective,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class HasUpperValidatorDirective implements Validator {\r\n validate(control: AbstractControl) {\r\n return hasUpperValidator()(control);\r\n }\r\n}\r\n","export * from './equal-to-validator.directive';\r\nexport * from './has-lower-validator.directive';\r\nexport * from './has-upper-validator.directive';\r\nexport * from './has-number-validator.directive';\r\n","import packageInfo from '../../package.json';\r\n\r\nexport const environment = {\r\n production: true,\r\n version: packageInfo.version,\r\n configUrl: '/confighandler.ashx',\r\n testBaseUrl: '',\r\n};\r\n","import { messages } from './base';\r\n\r\nexport enum Locale {\r\n GB = 'en-GB',\r\n DK = 'da-DK',\r\n SE = 'sv-SE',\r\n DE = 'de-DE',\r\n NO = 'nn-NO',\r\n FO = 'fo-FO',\r\n GL = 'kl-GL',\r\n IS = 'is-IS',\r\n}\r\n\r\nexport const SupportedLocales = [\r\n Locale.GB,\r\n Locale.DK,\r\n Locale.SE,\r\n Locale.DE,\r\n Locale.NO,\r\n Locale.FO,\r\n Locale.GL,\r\n Locale.IS,\r\n];\r\n\r\nconst IsoLocaleMap: { [K in Locale]: { locale: string } } = {\r\n [Locale.GB]: { locale: 'en-gb' },\r\n [Locale.DK]: { locale: 'da' },\r\n [Locale.SE]: { locale: 'sv' },\r\n [Locale.DE]: { locale: 'de' },\r\n [Locale.NO]: { locale: 'nb' },\r\n [Locale.FO]: { locale: 'da' },\r\n [Locale.GL]: { locale: 'da' },\r\n [Locale.IS]: { locale: 'is' },\r\n};\r\n\r\nexport const getIsoFromLocale = (locale: Locale) => {\r\n return IsoLocaleMap[locale].locale;\r\n};\r\n\r\nexport type Messages = typeof messages;\r\nexport type Message = keyof Messages;\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: `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 SFO_GiftcardCode: `Kode`,\r\n SFO_EnterPasshrase: `Indtast din kode for at se dit gavekort`,\r\n SFO_FindGiftCard: `Find Gavekort`,\r\n SFO_GiftCardValue: `Værdi`,\r\n SFO_GiftCardNotFound: `Gavekort ikke fundet`,\r\n SFO_GiftCardError: `Fejl`,\r\n SFO_GiftCardNumber: `Gavekortnummer`,\r\n SFO_GiftCardDateOfPurchase: `Købsdato`,\r\n SFO_GiftCardClickHereToSee: `Vis gavekort`,\r\n SFO_GiftCard: `Gavekort`,\r\n SFO_GiftCardErrorNotViewable: `Gavekort kan ikke vises`,\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 SFO_GiftcardCode: `Code`,\r\n SFO_EnterPasshrase: `Geben Sie den Code ein, um Ihre Geschenkkarte anzuzeigen`,\r\n SFO_FindGiftCard: `Geschenkkarten finden`,\r\n SFO_GiftCardValue: `Wert`,\r\n SFO_GiftCardNotFound: `Geschenkkarte nicht gefunden`,\r\n SFO_GiftCardError: `Fehler`,\r\n SFO_GiftCardNumber: `Geschenkkartennummer`,\r\n SFO_GiftCardDateOfPurchase: `Kaufdatum`,\r\n SFO_GiftCardClickHereToSee: `Siehe Geschenkkarte`,\r\n SFO_GiftCard: `Geschenkkarte`,\r\n SFO_GiftCardErrorNotViewable: `Geschenkkarte nicht sichtbar`,\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 SFO_GiftcardCode: `Code`,\r\n SFO_EnterPasshrase: `Enter your code to see your gift card`,\r\n SFO_FindGiftCard: `Find Giftcard`,\r\n SFO_GiftCardValue: `Value`,\r\n SFO_GiftCardNotFound: `Gift card not found`,\r\n SFO_GiftCardError: `Error`,\r\n SFO_GiftCardNumber: `Gift card number`,\r\n SFO_GiftCardDateOfPurchase: `Date of purchase`,\r\n SFO_GiftCardClickHereToSee: `Show gift card`,\r\n SFO_GiftCard: `Giftcard`,\r\n SFO_GiftCardErrorNotViewable: `Gift card not viewable`,\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 SFO_GiftcardCode: `Kodda`,\r\n SFO_EnterPasshrase: `Skriva tín kod til at síggja gávukortið`,\r\n SFO_FindGiftCard: `Finn gávukort`,\r\n SFO_GiftCardValue: `Virði`,\r\n SFO_GiftCardNotFound: `Gávukort fannst ekki`,\r\n SFO_GiftCardError: `Villa`,\r\n SFO_GiftCardNumber: `Gávukortnummar`,\r\n SFO_GiftCardDateOfPurchase: `Keypsdagur`,\r\n SFO_GiftCardClickHereToSee: `Vís gávukort`,\r\n SFO_GiftCard: `Gávukort`,\r\n SFO_GiftCardErrorNotViewable: `Giftskort ikki at síggja`,\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 SFO_GiftcardCode: `Kóði`,\r\n SFO_EnterPasshrase: `Sláðu inn kóðann til að sjá gjafakortið þitt`,\r\n SFO_FindGiftCard: `Finna gjafakort`,\r\n SFO_GiftCardValue: `Gildi`,\r\n SFO_GiftCardNotFound: `Gjafakort fannst ekki`,\r\n SFO_GiftCardError: `Villa`,\r\n SFO_GiftCardNumber: `Gjafakortanúmer`,\r\n SFO_GiftCardDateOfPurchase: `Dagsetning kaupa`,\r\n SFO_GiftCardClickHereToSee: `Sjá gjafakort`,\r\n SFO_GiftCard: `Gjafakort`,\r\n SFO_GiftCardErrorNotViewable: `Gjafakort ekki hægt að skoða`,\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 SFO_GiftcardCode: `Kode`,\r\n SFO_EnterPasshrase: `Indtast din kode for at se dit gavekort`,\r\n SFO_FindGiftCard: `Find Gavekort`,\r\n SFO_GiftCardValue: `Værdi`,\r\n SFO_GiftCardNotFound: `Gavekort ikke fundet`,\r\n SFO_GiftCardError: `Villa`,\r\n SFO_GiftCardNumber: `Gavekortnummer`,\r\n SFO_GiftCardDateOfPurchase: `Købsdato`,\r\n SFO_GiftCardClickHereToSee: `Vis gavekort`,\r\n SFO_GiftCard: `Gavekort`,\r\n SFO_GiftCardErrorNotViewable: `Gavekort kan ikke vises`,\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 SFO_GiftcardCode: `Kode`,\r\n SFO_EnterPasshrase: `Skriv inn koden for å se gavekortet ditt`,\r\n SFO_FindGiftCard: `Finne gavekort`,\r\n SFO_GiftCardValue: `Verdi`,\r\n SFO_GiftCardNotFound: `Gavekort ikke funnet`,\r\n SFO_GiftCardError: `Feil`,\r\n SFO_GiftCardNumber: `Gavekortnummer`,\r\n SFO_GiftCardDateOfPurchase: `Kjøpsdato`,\r\n SFO_GiftCardClickHereToSee: `Se gavekort`,\r\n SFO_GiftCard: `Gavekort`,\r\n SFO_GiftCardErrorNotViewable: `Gavekortet er ikke synlig`,\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 SFO_GiftcardCode: `Koda`,\r\n SFO_EnterPasshrase: `Ange koden för att se ditt presentkort`,\r\n SFO_FindGiftCard: `Hitta presentkort`,\r\n SFO_GiftCardValue: `Värde`,\r\n SFO_GiftCardNotFound: `Gavekort hittades inte`,\r\n SFO_GiftCardError: `Fel`,\r\n SFO_GiftCardNumber: `Presentkortsnummer`,\r\n SFO_GiftCardDateOfPurchase: `Inköpsdatum`,\r\n SFO_GiftCardClickHereToSee: `Se presentkort`,\r\n SFO_GiftCard: `Presentkort`,\r\n SFO_GiftCardErrorNotViewable: `Presentkortet går inte att se`,\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';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class MatDatepickerIntl {\r\n /**\r\n * Stream that emits whenever the labels here are changed. Use this to notify\r\n * components if the labels have changed after initialization.\r\n */\r\n readonly changes: Subject = new Subject();\r\n\r\n /** A label for the calendar popup (used by screen readers). */\r\n calendarLabel = 'Kalender';\r\n\r\n /** A label for the button used to open the calendar popup (used by screen readers). */\r\n openCalendarLabel = 'Åben kalender';\r\n\r\n /** Label for the button used to close the calendar popup. */\r\n closeCalendarLabel = 'Luk kalender';\r\n\r\n /** A label for the previous month button (used by screen readers). */\r\n prevMonthLabel = 'Forrige månede';\r\n\r\n /** A label for the next month button (used by screen readers). */\r\n nextMonthLabel = 'Næste månede';\r\n\r\n /** A label for the previous year button (used by screen readers). */\r\n prevYearLabel = 'Forrige år';\r\n\r\n /** A label for the next year button (used by screen readers). */\r\n nextYearLabel = 'Næste år';\r\n\r\n /** A label for the previous multi-year button (used by screen readers). */\r\n prevMultiYearLabel = 'Forrige 24 år';\r\n\r\n /** A label for the next multi-year button (used by screen readers). */\r\n nextMultiYearLabel = 'Næste 24 år';\r\n\r\n /** A label for the 'switch to month view' button (used by screen readers). */\r\n switchToMonthViewLabel = 'Vælg dato';\r\n\r\n /** A label for the 'switch to year view' button (used by screen readers). */\r\n switchToMultiYearViewLabel = 'Vælg måned og år';\r\n\r\n /** A label for the first date of a range of dates (used by screen readers). */\r\n startDateLabel = 'Start dato';\r\n\r\n /** A label for the last date of a range of dates (used by screen readers). */\r\n endDateLabel = 'Slut dato';\r\n\r\n /** Formats a range of years (used for visuals). */\r\n formatYearRange(start: string, end: string): string {\r\n return `${start} \\u2013 ${end}`;\r\n }\r\n\r\n /** Formats a label for a range of years (used by screen readers). */\r\n formatYearRangeLabel(start: string, end: string): string {\r\n return `${start} til ${end}`;\r\n }\r\n}\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic()\r\n .bootstrapModule(AppModule)\r\n .catch((err) => console.error(err));\r\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","Single","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","EcommerceGiftCardPreviewUrl","PreferredCulture","Buyer","PhoneNo","Surname","Address","recipient","Adress","Message","giftcardOrderItems","PricePerPiece","card","txtTo","GuestInformation","ToName","txtFrm","FromName","txtMessage","GiftcardMessage","showPrice","OrderItems","pdfCards","Recipient","amount","seat","GenerateVirtualGiftCardLink","giftcardGuid","passphrase","GetVirtualGiftCard","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","getVirtualGiftCard","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","HttpErrorResponse","FormControl","FormGroup","of","_r4","_r9","GiftcardLinkComponent","ShowGiftcard","GiftCardAmount","InitialAmount","GiftCardCreated","DateOfPurchase","GiftCardName","GiftCardPdfLink","CanOpenPdf","openGiftCardLink","paramMap","regex","match","patchValue","queryParamMap","loadGiftcard","setErrors","unauthorized","badRequest","notFound","internalError","unknownError","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","picker","hotelImage","chooseHotel","deselectAllHotels","PaymentFailedComponent","cancelReservation","IsReservationFromPaymentLink","ctx_r29","ctx_r31","_r27","ctx_r72","message_r75","PaymentLinkComponent","redicrectToRecieptParent","resId","PaymentLinkGuid","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","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:///"}