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

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

\n
\n
\n

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

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

{{ 'COM_Info' | t | async }}

\n

{{ 'APA_ResetBasket' | t | async }}

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

{{ 'APA_ActivateHead' | t | async }}

\n
\n
\n
\n

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

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

\n {{ message.error }}\n

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

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

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

{{ 'CUP_PayWithGiftcardHeader' | t | async }}

\n
\n
\n

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

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

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

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

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

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

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

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

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

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

{{ 'LFO_RecoveryError' | t | async }}

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

{{ 'COM_Info' | t | async }}

\n
\n
\n

{{ 'LFO_MessageSend' | t | async }}

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

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

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

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

\n

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

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

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

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

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

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

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

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

\n

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

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

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

\n

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

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

\n

\n {{ conferenceRoomInfo.RoomTypeName }}\n

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

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

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

Vælg Bordopstilling

\n
\n \n
\n \n

{{ table.Description }}

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

\n
\n

\n
\n
\n

Vælg Pakke

\n
\n
\n \n
\n

Dag

\n
\n
\n

Pakke

\n
\n
\n

Pris

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

29 Jun

\n
\n
\n

Lokale leje uden forplejning

\n
\n
\n

1.000 DKK

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

29 Jun

\n
\n
\n

Lokale leje med konference pakke

\n
\n
\n

1.000 DKK

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

30 Jun

\n
\n
\n

Lokale leje uden forplejning

\n
\n
\n

1.000 DKK

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

30 Jun

\n
\n
\n

Lokale leje med konference pakke

\n
\n
\n

1.000 DKK

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

1 Jul

\n
\n
\n

Lokale leje med konference pakke

\n
\n
\n

1.000 DKK

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

    {{ calendarDates.currentMonth | t | async }}

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

{{ 'CAL_Occupied' | t | async }}

\n
\n

{{ 'CAL_Available' | t | async }}

\n
\n

{{ 'CAL_NotPossible' | t | async }}

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

\n

Vælg lokale

\n\n

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

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

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

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

\n
\n \n
\n
\n

\n \n

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

Hotel

\n
\n
\n

{{ hotel.Name }}

\n
\n
\n
\n

Personer

\n
\n
\n

{{ selectedGuestCount }}

\n
\n
\n
\n

Dato

\n
\n
\n

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

\n
\n
\n

Vælg dato

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

Meeting rooms

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

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

\n
\n
\n

Fra 1000 DKK / pr. Person

\n
\n
\n

\n {{ item.RoomTypeName }}\n

\n
\n
\n

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

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

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

Antal Personer

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

    {{ calendarDates.currentMonth | t | async }}

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

{{ 'CAL_Occupied' | t | async }}

\n
\n

{{ 'CAL_Available' | t | async }}

\n
\n

{{ 'CAL_NotPossible' | t | async }}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

\n
\n

{{ 'CUP_CancelPolicyDesc' | t | async }}

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

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

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

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

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

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

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

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

\n

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

\n\n

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

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

{{ 'SFO_GiftcardMetaData' | t | async }}

\n
\n
\n
\n
\n

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

\n
\n
\n

{{ 'COM_Price' | t | async }}

\n \n
\n
\n

{{ 'SFO_GiftcardAmount' | t | async }}

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

{{ 'SFO_GiftcardEnterDetails' | t | async }}

\n
\n
\n
\n
\n

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

\n
\n
\n

{{ 'SFO_GiftcardTo' | t | async }}

\n \n
\n
\n

{{ 'SFO_GiftcardFrom' | t | async }}

\n \n
\n
\n

{{ 'SFO_GiftcardMessage' | t | async }}

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

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

\n

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

\n\n

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

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

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

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

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

{{ card.item.Name }}

\n
\n \n
\n
\n

\n \n

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

{{ 'SFO_NumberOfGiftcards' | t | async }}

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

{{ applicationState.HotelLabel | t | async }}

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

{{ hotel.name }}

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

{{ hotel.name }}

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

{{ hotel.name }}

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

{{ hotel.name }}

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

{{ tile.lable | t | async }}

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

{{ tile.lable | t | async }}

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

{{ 'PFP_Header' | t | async }}

\n

{{ 'PFP_Info' | t | async }}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

{{ 'LOA_PreparingPaymnent' | t | async }}

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

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

\n

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

\n

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

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

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

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

\n
\n \n
\n
\n

\n \n

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

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

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

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

\n
\n
\n

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

\n
\n
\n

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

\n
\n
\n

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

\n
\n
\n

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

\n
\n
\n

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

\n
\n
\n

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

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

\n

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

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

\n

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

\n

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

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

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

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

\n
\n \n
\n
\n

\n \n

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

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

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

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

\n
\n
\n

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

\n
\n
\n

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

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

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

\n
\n
\n

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

\n
\n
\n

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

\n
\n
\n

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

\n
\n
\n

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

{{ 'CAL_Occupied' | t | async }}

\n\n
\n

{{ 'CAL_Available' | t | async }}

\n\n
\n

{{ 'CAL_Arrival' | t | async }}

\n\n
\n

{{ 'CAL_Departure' | t | async }}

\n\n
\n

Valgt

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

\n {{ hotel.Name }}\n

\n

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

\n

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

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

\n

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

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

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

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

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

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

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

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

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

{{ data.seatingUi.header }}

\n
\n
\n
\n \"\"\n
\n \n
\n \n \n
\n
\n
\n {{ seatItem.Description }}\n
\n
\n
\n
\n
\n
\n \n \n \n
\n
\n
\n \n \n \n {{ seatItem.chosenTicketAmount }} / {{ seatItem.maxTickets.length }}\n \n \n \n
\n
\n
\n
+ {{ seatItem.price | price | async }}
\n
\n
\n
\n
\n
\n
\n
\n
\n \n\n","import { Component, ElementRef, OnDestroy, OnInit, QueryList, ViewChildren } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { LogService } from '@com/logging';\nimport { BehaviorSubject } from 'rxjs';\nimport { AppQueryParams } from 'src/app/app.component';\nimport moment, { Moment } from 'moment';\nimport {\n ApplicationStateService,\n Booking,\n BookingSeating,\n RateCodeString,\n RoomCodeString,\n SeatingData,\n SeatingRate,\n} from 'src/app/core';\nimport { BasketQueryParams, BasketService, Loader, LocaleService, SearchParams, TrackingService } from 'src/app/core';\nimport { DateHelper, Guid, UTCDateString, UTCDateTimeString } from 'src/app/helpers';\nimport { HotelService } from '../../core/modules/hotel/hotel.service';\nimport { SeatProfileType } from '../../core/modules/payment';\nimport { NavigationHelper } from '../../helpers/navigation-helper';\nimport { SearchComponent } from '../search/search.component';\nimport { HighlightDate } from '../seating-standalone/seating-date-calendar.component';\n\n@Component({\n selector: 'app-seating',\n templateUrl: './seating.component.html',\n})\nexport class SeatingComponent implements OnInit, OnDestroy {\n private seatingsAreChoosen = false;\n chosenDate$ = new BehaviorSubject(null);\n minDate: Moment | undefined;\n maxDate: Moment | undefined;\n\n selectedSeating: SeatingUiModel | undefined;\n arrivaldate = '';\n lengthOfStay = 2;\n bookingFlow = this.applicationState.BookingFlow;\n basket = this.getBasket(this.route.snapshot.queryParams as AppQueryParams);\n\n dateSelected: ClockUiModel | undefined;\n availibleTickets = [] as number[];\n ticketSelectedFromBasket: number | undefined;\n onlySeating = false;\n canContinue = false;\n seatingSelected: Guid | undefined;\n sealectedSeatingDate: Date | undefined;\n seatingsToBasketArray: BookingSeating[] = [];\n state: ApplicationStateService | undefined;\n firstMonthNumber = 0;\n firstYearNumber = 0;\n isBookingFlow = false;\n startAt: Date | undefined;\n seatingWrapper: SeatingWrapper[] | undefined;\n updateCalendar = false;\n lang = '';\n\n //Calendar\n highlightedDates: HighlightDate[] = [];\n availableDates: Moment[] = [];\n dateHasBeenClicked = false;\n\n @ViewChildren('seatingItem') seatingItemRef!: QueryList;\n @ViewChildren('seatingSelectedItem')\n seatingSelectedItemRef!: QueryList;\n\n constructor(\n private log: LogService,\n private route: ActivatedRoute,\n private loader: Loader,\n private basketService: BasketService,\n private hotelService: HotelService,\n private localeService: LocaleService,\n private trackingService: TrackingService,\n private applicationState: ApplicationStateService,\n private navigationHelper: NavigationHelper,\n ) {\n this.chosenDate$.subscribe(async (x) => {\n if (x) {\n if (\n this.dateHasBeenClicked ||\n (this.basket.bookings &&\n this.basket.bookings[0] &&\n this.basket.bookings[0].Seatings &&\n this.seatingsAreChoosen)\n ) {\n await this.loader.using(async () => {\n const res = await this.buildSeatingData(x.toDate(), x.toDate());\n this.seatingWrapper = res;\n\n if (this.selectedSeating) {\n const dates = await this.buildAvailibleDates(this.basket.bookings);\n this.selectedSeating.seatingTimesUiModel = dates;\n }\n }, 'LOA_Availability' as any);\n }\n }\n });\n }\n\n async ngOnInit() {\n this.lang = await this.localeService.getLocale(); //\n\n this.localeService.locale$.subscribe(async (x) => {\n if (x) {\n if (this.lang !== x) {\n await this.loadPageContent();\n this.lang = x;\n }\n }\n });\n\n await this.loadPageContent();\n\n if (this.onlySeating && this.seatingWrapper && this.seatingWrapper.length === 0) {\n await this.navigationHelper.navigateToPage('/add-on/1');\n }\n }\n\n async loadPageContent() {\n await this.loader.using(async () => {\n this.state = this.applicationState;\n this.arrivaldate = DateHelper.toServerDateFormatString(this.basket.params.arrival);\n\n document.body.classList.remove('addBackGround');\n document.body.classList.remove('addBackGroundWithAnimation');\n document.body.style.backgroundImage = '';\n\n if (this.basket.bookings.length !== 0 && this.basket.bookings[0].RoomName !== '') {\n this.isBookingFlow = true;\n }\n\n //Check if any selected seating in basket\n if (\n this.basket &&\n this.basket.bookings[0] &&\n this.basket.bookings[0].Seatings &&\n this.basket.bookings[0].Seatings.length !== 0\n ) {\n this.seatingsAreChoosen = true;\n }\n\n if (this.basket.bookings.length === 0) {\n this.basket.params.rooms = [];\n }\n if (this.basket.bookings[0] && this.basket.bookings[0].RoomCode !== ('' as RoomCodeString)) {\n this.onlySeating = true;\n } else {\n await this.buildCalendarData(undefined);\n this.onlySeating = false;\n }\n if (this.basket.bookings[0] && this.basket.bookings[0].Seatings && this.basket.bookings[0].Seatings[0]) {\n this.seatingSelected = this.basket.bookings[0].Seatings[0].Id as Guid;\n this.sealectedSeatingDate = this.basket.bookings[0].Seatings[0].Date;\n }\n\n document.body.classList.remove('addBackGround');\n document.body.style.backgroundImage = '';\n await this.prepareNavigation();\n\n if (!this.seatingSelected) {\n const res = await this.buildSeatingData(new Date(), DateHelper.addMonth(new Date(), 12));\n this.seatingWrapper = res;\n } else {\n if (this.sealectedSeatingDate) {\n let res = [] as SeatingWrapper[];\n\n if (!this.onlySeating) {\n res = await this.buildSeatingData(new Date(), DateHelper.addMonth(new Date(), 12));\n } else {\n res = await this.buildSeatingData(\n moment(this.sealectedSeatingDate).toDate(),\n moment(this.sealectedSeatingDate).toDate(),\n );\n }\n this.seatingWrapper = res;\n if (this.selectedSeating) {\n const dates = await this.buildAvailibleDates(this.basket.bookings);\n this.selectedSeating.seatingTimesUiModel = dates;\n }\n }\n }\n }, 'LOA_Availability' as any);\n }\n\n calendarOutput(date: Moment) {\n const oldValue = this.dateHasBeenClicked;\n this.dateHasBeenClicked = true;\n this.selectedSeating = undefined;\n if (!oldValue) {\n this.chosenDate$.next(date);\n }\n }\n\n async resetDate() {\n await this.loader.using(async () => {\n this.chosenDate$.next(null);\n this.dateHasBeenClicked = false;\n const res = await this.buildSeatingData(new Date(), DateHelper.addMonth(new Date(), 12));\n this.seatingWrapper = res;\n this.deselectAllSeatings();\n this.selectedSeating = undefined;\n await this.buildCalendarData(undefined);\n\n this.updateCalendar = true;\n }, 'LOA_Availability' as any);\n }\n\n ngOnDestroy(): void {\n this.navigationHelper.resetNextPage();\n }\n\n async prepareNavigation() {\n const url = '/' + this.route.snapshot.url.join('/');\n await this.navigationHelper.continueMobileNavigationbar(false, true, url, '/add-on');\n }\n\n buildSelectedSeatsFromBasket(basketSeating: BookingSeating[], seatings: SeatingTimesUiModel[]) {\n this.seatingsToBasketArray = basketSeating;\n for (const item of seatings) {\n const res = basketSeating.find(\n (x) =>\n x.Id === item.vareNr &&\n DateHelper.FromUtcDate(x.Date.toString() as UTCDateString).getDate() ===\n DateHelper.FromUtcDate(item.arrival.toString() as UTCDateString).getDate(),\n );\n\n if (res && res.TicketTotal) {\n item.SelectedseatId = res.Id;\n item.SelectedDate = res.Date;\n item.SelectedName = res.Name;\n item.totalPrice = res.TicketTotal * res.SinglePrice;\n item.ticketSelected = res.TicketTotal;\n const clock = item.clock.find((x) => x.time === res.Time);\n if (clock) {\n const clockSelected = clock.time ? clock.time : undefined;\n clock.selectedTime = clockSelected;\n }\n }\n }\n }\n\n async onMoveToNextClick() {\n await this.navigationHelper.continue('/seating/1', '/add-on/1');\n }\n\n async onSeatingClick(e: Event | null, seating: SeatingUiModel, forceState: boolean | null = null) {\n if (seating.selected === forceState) {\n return;\n }\n\n this.deselectAllSeatings();\n\n if (e) {\n e.stopPropagation();\n }\n\n if (!this.onlySeating && !this.dateHasBeenClicked) {\n await this.buildCalendarData(seating.characteristics, true);\n this.chosenDate$.next(moment(seating.date));\n this.startAt = moment(seating.date).toDate();\n this.updateCalendar = true;\n }\n\n if (this.selectedSeating && seating.seatingPlanId === this.selectedSeating.seatingPlanId) {\n this.selectedSeating = undefined;\n return;\n }\n\n seating.selected = forceState ? forceState : !seating.selected;\n this.selectedSeating = seating;\n const res = await this.buildAvailibleDates(this.basket.bookings);\n this.selectedSeating.seatingTimesUiModel = res;\n }\n\n deselectAllSeatings() {\n if (this.seatingWrapper) {\n for (const w of this.seatingWrapper) {\n w.data.forEach((x) => {\n x.selected = false;\n });\n }\n }\n }\n\n onSeatingDateChange(event: string, rate: SeatingTimesUiModel) {\n rate.clock.forEach((item) => {\n item.selectedTime = undefined;\n });\n const clock = rate.clock.find((x) => x.time === event);\n if (clock) {\n clock.selectedTime = event;\n rate.tickets = this.buildAvailibleTickets(clock.maxAvailible);\n }\n }\n\n buildTicketPrice(price: number, ticketCount: number) {\n const totalPrice = price * ticketCount;\n return totalPrice;\n }\n\n buildAvailibleTickets(ticketsNumber: number) {\n const availibleTickets = [] as number[];\n let counter = 0;\n while (ticketsNumber !== 0 && counter !== ticketsNumber + 1) {\n availibleTickets.push(counter);\n counter++;\n }\n return availibleTickets;\n }\n\n async onRateSelect(seating: SeatingUiModel, rate: SeatingTimesUiModel) {\n const seatingToBasket = {} as BookingSeating;\n\n rate.totalPrice = this.buildTicketPrice(rate.price, rate.ticketSelected);\n const clockDate = rate.clock.find((x) => x.selectedTime);\n\n if (clockDate) {\n seatingToBasket.Date = clockDate.date;\n seatingToBasket.Time = clockDate.time;\n } else {\n seatingToBasket.Date = rate.clock[0].date;\n seatingToBasket.Time = rate.clock[0].time;\n }\n\n const midDate = DateHelper.FromUtcDate(rate.arrival.toString() as UTCDateString);\n const month = DateHelper.getTranslatedMonth(midDate.getMonth());\n\n seatingToBasket.day = midDate.getDate().toString();\n seatingToBasket.month = month;\n seatingToBasket.year = midDate.getFullYear().toString();\n seatingToBasket.Id = rate.vareNr;\n seatingToBasket.Name = rate.name;\n seatingToBasket.SinglePrice = rate.price;\n seatingToBasket.TicketTotal = rate.ticketSelected;\n seatingToBasket.SeatRate = seating.characteristics;\n seatingToBasket.SeatingPlanName = seating.name;\n seatingToBasket.SeatCode = 'DELT';\n seatingToBasket.seatId = rate.ID;\n seatingToBasket.type = 'SeatingBooking';\n seatingToBasket.returnUrl = {};\n\n const seatGuests = [] as SeatProfileType[];\n const modiDate = DateHelper.FromUtcDate(seatingToBasket.Date.toString() as UTCDateString);\n const guest: SeatProfileType = {\n Count: seatingToBasket.TicketTotal ? seatingToBasket.TicketTotal : 0,\n Date: seatingToBasket.Date\n ? (DateHelper.toServerDateFormatString(modiDate) as UTCDateString)\n : (DateHelper.toServerDateFormatString(new Date()) as UTCDateString),\n Name: seatingToBasket.Name,\n Price: seatingToBasket.SinglePrice,\n Time: seatingToBasket.Time ? seatingToBasket.Time : '',\n SeatId: seatingToBasket.Id,\n VareNr: rate.vareNr,\n };\n seatGuests.push(guest);\n\n seatingToBasket.SeatGuest = seatGuests;\n this.seatingsToBasketArray.push(seatingToBasket);\n\n const bask = this.basket.bookings[0];\n\n if (bask) {\n this.basket.bookings[0] = {\n Seatings: this.seatingsToBasketArray,\n HasPromotionForCustomer: bask.HasPromotionForCustomer,\n RateCode: bask.RateCode,\n RateName: bask.RateName,\n RoomCode: bask.RoomCode,\n RoomName: bask.RoomName,\n RateDescription: bask.RateDescription ? bask.RateDescription : '',\n AddOns: bask.AddOns,\n TableSeatings: bask.TableSeatings,\n ConferenceRateCode: '',\n OriginalPrice: bask.OriginalPrice,\n ConferenceRoomCode: '',\n Price: bask.Price,\n };\n } else {\n this.basket.bookings[0] = {\n Seatings: this.seatingsToBasketArray,\n HasPromotionForCustomer: false,\n RateCode: '' as RateCodeString,\n RateName: '',\n RoomCode: '' as RoomCodeString,\n RoomName: '',\n RateDescription: '',\n ConferenceRateCode: '',\n ConferenceRoomCode: '',\n Price: undefined,\n OriginalPrice: undefined,\n };\n }\n\n this.trackingService.addToCart(this.basket.params.hotelCode, 'Seating', `${seating.characteristics}`, 1);\n\n rate.SelectedseatId = rate.vareNr;\n rate.SelectedName = rate.name;\n rate.SelectedDate = rate.arrival;\n\n this.sealectedSeatingDate = seating.date;\n this.basketService.set(this.basket);\n\n if (!this.onlySeating) {\n this.highlightedDates.push({\n date: rate.arrival,\n occupied: false,\n inBasket: true,\n } as HighlightDate);\n this.updateCalendar = true;\n }\n\n this.canContinue = true;\n }\n\n onSelectedRateClick(rate: SeatingTimesUiModel) {\n this.basketService.set(this.basket);\n\n const existingSeating = this.seatingsToBasketArray.find(\n (x) =>\n x.seatId === rate.ID &&\n DateHelper.FromUtcDate(x.Date.toString() as UTCDateString).getDate() ===\n DateHelper.FromUtcDate(rate.arrival.toString() as UTCDateString).getDate() &&\n x.Name === rate.name,\n );\n\n if (existingSeating) {\n if (rate.ticketSelected != 0) {\n existingSeating.TicketTotal = rate.ticketSelected;\n } else {\n const index = this.seatingsToBasketArray.indexOf(existingSeating);\n\n this.seatingsToBasketArray.splice(index, 1);\n\n rate.SelectedseatId = undefined;\n }\n }\n\n if (this.basket.bookings[0].Seatings === undefined || this.basket.bookings[0].Seatings.length === 0) {\n this.onlySeating = false;\n }\n\n this.basketService.set(this.basket);\n }\n\n async goBack() {\n if (this.basket.bookings[0] && this.basket.bookings[0].RoomCode === ('' as RoomCodeString)) {\n await this.navigationHelper.goBack(true);\n } else {\n await this.navigationHelper.goBack();\n }\n }\n\n async buildCalendarData(itemNumber: string | undefined, isRebuild = false) {\n await this.loader.using(async () => {\n this.availableDates = [];\n let seatingSpectra = await this.hotelService.GetECommerceSeatings(\n this.applicationState.CurrentHotelCode,\n new Date(),\n DateHelper.addMonth(new Date(), 12),\n await this.localeService.getLocale(),\n true,\n );\n\n if (itemNumber) {\n seatingSpectra = seatingSpectra.filter((x) => x.Characteristics === itemNumber);\n }\n\n for (const item of seatingSpectra) {\n for (const rate of item.Rates) {\n this.availableDates.push(moment(rate.Arrival));\n\n if (\n this.seatingsAreChoosen &&\n this.basket.bookings[0].Seatings &&\n this.basket.bookings[0].Seatings.filter((x) => x.Date === rate.Arrival).length > 0\n ) {\n this.highlightedDates.push({\n date: rate.Arrival,\n occupied: false,\n inBasket: true,\n } as HighlightDate);\n }\n }\n }\n\n if (!isRebuild) {\n if (this.highlightedDates.length !== 0) {\n this.startAt = moment(this.highlightedDates[0].date).toDate();\n } else {\n this.startAt = this.availableDates[0].toDate();\n }\n }\n }, 'LOA_Availability' as any);\n this.availableDates = this.availableDates.sort((a, b) => moment(a, 'DD-MM-YYYY').diff(moment(b, 'DD-MM-YYYY')));\n }\n\n private getBasket(queryParams: Partial) {\n const hotelCode = SearchComponent.ParseHotelCode(queryParams);\n const arrival = SearchComponent.ParseArrival(queryParams) || new Date();\n const stay = SearchComponent.ParseStay(queryParams) || 30;\n\n let rooms = SearchComponent.ParseRooms(queryParams);\n const single = SearchComponent.ParseSingle(queryParams);\n if (rooms === undefined) {\n rooms = [];\n }\n\n if (hotelCode && arrival && stay && rooms) {\n const params: SearchParams = {\n hotelCode,\n arrival,\n stay,\n rooms,\n single,\n ArrivalDate: 0,\n ArrivalFullYear: 0,\n ArrivalMonthName: '',\n DepartueDate: 0,\n DepartueFullYear: 0,\n DepartueMonthName: '',\n BookingFlow: 1,\n RateCode: '',\n ConferenceRoomCode: '',\n };\n return this.basketService.create(params);\n } else {\n const basket = this.basketService.get();\n if (basket) {\n return basket;\n } else {\n throw new Error('Basket must not be empty');\n }\n }\n }\n\n private async buildSeatingData(date: Date, endDate: Date) {\n const seatingWrapperArray = [] as SeatingWrapper[];\n const seatingArray = [] as SeatingUiModel[];\n\n if (!this.onlySeating) {\n const seatingSpectra = await this.hotelService.GetECommerceSeatings(\n this.applicationState.CurrentHotelCode,\n this.dateHasBeenClicked ? date : new Date(),\n this.dateHasBeenClicked ? endDate : DateHelper.addMonth(endDate, 12),\n await this.localeService.getLocale(),\n );\n\n if (seatingSpectra && seatingSpectra.length !== 0) {\n const seats = seatingSpectra.filter((x) => x.Rates !== null);\n\n for (const seatItem of seats) {\n const seatingPortal = await this.hotelService.GetECommerceSeatingPortalInfo(\n this.applicationState.CurrentHotelCode,\n date,\n endDate,\n seatItem.ItemNumber,\n this.isBookingFlow,\n this.basket.bookings[0] ? this.basket.bookings[0].RateCode : '',\n );\n\n const info = seatingPortal.find((x) => x.ID === seatItem.ItemNumber);\n\n if (info) {\n const seatingUiModel = {\n image: info.Image,\n characteristics: seatItem.Characteristics,\n long: info.Long,\n name: info.Name,\n sortIndex: info.SortIndex,\n seatingPlanId: info.ID,\n date: seatItem.Rates[0].Arrival,\n } as SeatingUiModel;\n\n if (this.basket && this.basket.bookings[0] && this.basket.bookings[0].Seatings) {\n seatingUiModel.selected =\n this.basket.bookings[0].Seatings.filter((x) => x.Id === info.ID).length === 0 ? false : true;\n\n if (seatingUiModel.selected) {\n this.selectedSeating = seatingUiModel;\n }\n }\n\n seatingArray.push(seatingUiModel);\n }\n }\n\n for (const seating of seatingArray) {\n const midDate = DateHelper.FromUtcDate(seating.date.toString() as UTCDateString);\n const month = DateHelper.getTranslatedMonth(midDate.getMonth());\n\n const exist = seatingWrapperArray.find((x) => x.data.length > 0) !== undefined;\n if (exist) {\n const wrapper = seatingWrapperArray[0];\n\n if (wrapper) {\n const skip = wrapper.data.find((x) => x.characteristics === seating.characteristics) === undefined;\n\n if (skip) {\n wrapper.data.push(seating);\n this.sortList(wrapper.data);\n }\n }\n } else {\n const wrapper = {} as SeatingWrapper;\n if (month) {\n wrapper.month = month;\n wrapper.data = [] as SeatingUiModel[];\n wrapper.data.push(seating);\n\n seatingWrapperArray.push(wrapper);\n }\n }\n }\n\n if (this.minDate === undefined && seatingArray.length > 0) {\n this.minDate = moment(seatingArray[0].date).add(-1, 'day');\n\n if (this.seatingsAreChoosen) {\n this.chosenDate$.next(moment(this.sealectedSeatingDate));\n }\n }\n if (this.maxDate === undefined) {\n this.maxDate = moment(this.availableDates[this.availableDates.length - 1]);\n }\n }\n } else {\n const { hotelCode, arrival, stay } = this.basket.params;\n\n let seatings = [] as SeatingData[];\n\n const spectraSeatings = await this.hotelService.GetECommerceSeatings(\n hotelCode,\n arrival,\n DateHelper.addDays(arrival, stay),\n await this.localeService.getLocale(),\n );\n\n for (const item of spectraSeatings) {\n if (seatings.filter((x) => x.Characteristics === item.Characteristics).length === 0) {\n seatings.push(item);\n }\n }\n\n if (seatings && seatings.length !== 0) {\n seatings = seatings.filter((x) => x.Rates);\n\n for (const item of seatings) {\n const seatingPortal = await this.hotelService.GetECommerceSeatingPortalInfo(\n this.applicationState.CurrentHotelCode,\n arrival,\n DateHelper.addDays(arrival, stay),\n item.ItemNumber,\n this.isBookingFlow,\n this.basket.bookings[0] ? this.basket.bookings[0].RateCode : '',\n );\n\n const info = seatingPortal.find((x) => x.ID === item.ItemNumber);\n\n if (info) {\n const seatingUiModel = {} as SeatingUiModel;\n\n seatingUiModel.image = info.Image;\n seatingUiModel.characteristics = item.Characteristics;\n seatingUiModel.long = info.Long;\n seatingUiModel.sortIndex = info.SortIndex;\n seatingUiModel.seatingPlanId = info.ID;\n seatingUiModel.date = item.Rates[0].Arrival;\n seatingUiModel.selected = false;\n seatingUiModel.name = info.Name;\n\n if (this.basket && this.basket.bookings && this.basket.bookings[0].Seatings) {\n seatingUiModel.selected =\n this.basket.bookings[0].Seatings.filter((x) => x.Id === info.ID).length === 0 ? false : true;\n if (seatingUiModel.selected) {\n this.selectedSeating = seatingUiModel;\n }\n }\n seatingArray.push(seatingUiModel);\n }\n }\n\n for (const seating of seatingArray) {\n const midDate = DateHelper.FromUtcDate(seating.date.toString() as UTCDateString);\n const month = DateHelper.getTranslatedMonth(midDate.getMonth());\n const exist = seatingWrapperArray.find((x) => x.month === month) !== undefined;\n if (exist) {\n const wrapper = seatingWrapperArray.find((x) => x.month === month);\n\n if (wrapper) {\n const skip = wrapper.data.find((x) => x.seatingPlanId === seating.seatingPlanId) === undefined;\n\n if (skip) {\n wrapper.data.push(seating);\n }\n }\n } else {\n const wrapper = {} as SeatingWrapper;\n if (month) {\n wrapper.month = month;\n wrapper.data = [] as SeatingUiModel[];\n wrapper.data.push(seating);\n\n seatingWrapperArray.push(wrapper);\n }\n }\n }\n } else {\n await this.navigationHelper.navigateToPage('/add-on/1');\n }\n }\n\n for (const item of seatingWrapperArray) {\n item.data = this.sortList(item.data);\n }\n\n return seatingWrapperArray;\n }\n\n private sortList(array: SeatingUiModel[]) {\n const sortedArray = [] as SeatingUiModel[];\n\n for (const item of array) {\n if (sortedArray.length === 0) {\n sortedArray.push(item);\n } else {\n if (sortedArray.filter((x) => x.sortIndex > item.sortIndex).length === 0) {\n sortedArray.push(item);\n } else {\n const object = sortedArray.filter((x) => x.sortIndex > item.sortIndex)[0];\n const index = sortedArray.indexOf(object);\n\n sortedArray.splice(index, 0, item);\n }\n }\n }\n return sortedArray;\n }\n\n private async buildAvailibleDates(bookings: Booking[]) {\n if (this.selectedSeating) {\n const selectedCharacteristics = this.selectedSeating.characteristics;\n const firstDate = DateHelper.FromUtcDate(this.selectedSeating.date.toString() as UTCDateString);\n let start = DateHelper.getFirstDateOfMonth(firstDate);\n let end = DateHelper.getLastDateOfMonth(firstDate);\n\n let res: SeatingData[] | undefined;\n if (!this.onlySeating) {\n if (this.chosenDate$.value) {\n const calendarDate = this.chosenDate$.value.toDate();\n\n start = calendarDate;\n end = calendarDate;\n }\n\n res = await this.hotelService.GetECommerceSeatings(\n this.applicationState.CurrentHotelCode,\n start,\n end,\n await this.localeService.getLocale(),\n );\n } else {\n const { hotelCode, arrival, stay } = this.basket.params;\n end = DateHelper.addDays(arrival, stay);\n start = arrival;\n\n res = await this.hotelService.GetECommerceSeatings(hotelCode, start, end, await this.localeService.getLocale());\n }\n\n if (res) {\n res = res.filter((x) => x.Rates !== null);\n }\n const seatings: SeatingTimesUiModel[] = [];\n try {\n if (res) {\n for (const specSeat of res.filter((x) => x.Characteristics === selectedCharacteristics)) {\n const seatingPortal = await this.hotelService.GetECommerceSeatingPortalInfo(\n this.applicationState.CurrentHotelCode,\n start,\n end,\n specSeat.ItemNumber,\n this.isBookingFlow,\n this.basket.bookings[0] ? this.basket.bookings[0].RateCode : '',\n );\n const seatInfo = seatingPortal.find((x) => x.ID === specSeat.ItemNumber);\n\n if (seatInfo) {\n for (const seat of seatInfo.SeatItems) {\n for (const item of specSeat.Rates) {\n const seatingModel = {} as SeatingTimesUiModel;\n const midDate = DateHelper.FromUtcDate(item.Arrival.toString() as UTCDateString);\n const month = DateHelper.getTranslatedMonth(midDate.getMonth());\n\n const time = DateHelper.getTimeFromUtcDate(item.Arrival.toString() as UTCDateTimeString);\n\n seatingModel.day = midDate.getDate().toString();\n\n if (seatings.filter((x) => x.arrival === item.Arrival).length === 0) {\n seatingModel.month = month;\n seatingModel.year = midDate.getFullYear().toString();\n } else {\n seatingModel.multipleDays = true;\n }\n\n seatingModel.arrival = item.Arrival;\n seatingModel.price = seat.Price;\n seatingModel.name = specSeat.Description;\n seatingModel.vareNr = seat.VareNr;\n seatingModel.tickets = this.buildAvailibleTickets(item.MaxPers);\n seatingModel.ticketSelected = seatingModel.tickets[0];\n\n if (seatingModel.tickets.length === 0) {\n continue;\n }\n\n const seating = seatings.find(\n (x) =>\n x.day === midDate.getDate().toString() &&\n x.month === month &&\n x.year === midDate.getFullYear().toString(),\n );\n\n const currentSeat = seatings.find(\n (x) => x.vareNr === seat.VareNr && x.day === midDate.getDate().toString(),\n );\n\n if (seating) {\n if (currentSeat) {\n const clockModel = {} as ClockUiModel;\n clockModel.time = time;\n clockModel.date = item.Arrival;\n clockModel.maxAvailible = item.MaxPers;\n\n const index = currentSeat.clock.filter(\n (x) => x.time && x.date.toString() === item.Arrival.toString(),\n );\n\n if (index.length === 0) {\n currentSeat.clock.push(clockModel);\n }\n } else {\n if (seatingModel.clock === undefined) {\n seatingModel.clock = [] as ClockUiModel[];\n }\n\n const clockModel = {} as ClockUiModel;\n\n clockModel.time = time;\n clockModel.date = item.Arrival;\n clockModel.maxAvailible = item.MaxPers;\n\n seatingModel.clock.push(clockModel);\n seatings.push(seatingModel);\n }\n } else {\n seatingModel.clock = [] as ClockUiModel[];\n const clockModel = {} as ClockUiModel;\n\n clockModel.time = time;\n clockModel.date = item.Arrival;\n clockModel.maxAvailible = item.MaxPers;\n\n seatingModel.clock.push(clockModel);\n seatings.push(seatingModel);\n }\n }\n }\n }\n }\n if (\n this.seatingsAreChoosen ||\n (this.basket &&\n this.basket.bookings[0] &&\n this.basket.bookings[0].Seatings &&\n this.basket.bookings[0].Seatings.length !== 0)\n ) {\n for (const item of bookings) {\n if (item.Seatings) {\n this.buildSelectedSeatsFromBasket(item.Seatings, seatings);\n }\n }\n }\n return seatings.sort((a, b) => {\n const dateA = new Date(a.arrival);\n const dateB = new Date(b.arrival);\n return dateA.getDate() - dateB.getDate();\n });\n }\n return [];\n } catch (err: any) {\n this.log.error(`RoomRoute failed to load seatings. ${err.message}`);\n return undefined;\n }\n }\n return [];\n }\n}\n\nexport interface SeatingWrapper {\n month: string;\n data: SeatingUiModel[];\n}\n\nexport interface SeatingUiModel {\n image: string;\n long: string;\n name: string;\n characteristics: string;\n date: Date;\n seatingPlanId: string;\n sortIndex: number;\n tableTickets: TableTickets[];\n tableDetails: SeatingTableDetails;\n selected: boolean;\n seatingTimesUiModel: SeatingTimesUiModel[] | SeatingRate[] | undefined;\n}\n\nexport interface TableTickets {\n arrival: Date;\n maxPers: number;\n}\n\nexport interface SeatingTableDetails {\n vareNr: string;\n price: number;\n rateCode: string;\n}\n\nexport interface SeatingTimesUiModel {\n arrival: Date;\n month: string;\n day: string;\n year: string;\n clock: ClockUiModel[];\n price: number;\n name: string;\n tickets: number[];\n ticketSelected: number;\n totalPrice: number;\n vareNr: string;\n ID: number;\n SelectedseatId: string | undefined;\n SelectedName: string | undefined;\n SelectedDate: Date | undefined;\n multipleDays: boolean;\n}\n\nexport interface ClockUiModel {\n date: Date;\n time: string | null;\n maxAvailible: number;\n selectedTime: string | undefined;\n}\n","
\n
\n \n {{ 'COM_Back' | t | async }}\n \n {{ 'COM_Continue' | t | async }}\n\n \n {{ state.EventLabel | t | async }}\n

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

\n

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

\n

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

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

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

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

{{ room.item.name }}

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

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

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

\n

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

\n

\n {{ date.name }}\n

\n

\n {{ date.name }}\n

\n
\n
\n
\n

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

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

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

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

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

\n

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

\n\n

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

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

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

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

    \n\n

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

    \n\n

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

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

      {{ calendarDates.currentMonth | t | async }}

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

    {{ 'CAL_Occupied' | t | async }}

    \n
    \n

    {{ 'CAL_Available' | t | async }}

    \n
    \n

    {{ 'CAL_NotPossible' | t | async }}

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

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

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

    {{ room.item.name }}

    \n
    \n
    \n
    \n
    \n

    \n \n

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

    {{ 'SEA_Time' | t | async }}

    \n
    \n \n \n
    \n

    {{ 'COM_TableNumberOfGuestsForProduct' | t | async }}

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

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

    \n
    \n
    \n
    \n

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

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

    {{ state.HotelBasketInfo.Name }}

    \n

    {{ state.HotelBasketInfo.Address }}

    \n

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

    \n
    \n
    \n

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

    \n

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

    \n

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

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

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

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

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

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

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

    \n

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

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

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

    \n
    \n
    \n
    \n
    \n

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

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

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

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

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

    \n \n
    \n
    \n
    \n

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

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

    - {{ addon.Name }}

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

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

    \n
    \n
    \n
    \n
    \n

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

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

    {{ table.Name }}

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

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

    \n
    \n
    \n
    \n

    {{ card.Name }}

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

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

    \n \n
    \n
    \n

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

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

    {{ 'LOA_Availability' | t | async }}

    \n
    \n
    \n
    \n
    {{ day }}
    \n
    \n
    \n
    \n 1 ? 'l6' : 'l12' }}\">\n \n
    \n \n
    {{ m.name }}
    \n \n
    \n
    \n \n \n \n
    {{ m.name }}
    \n \n \n \n
    \n
    \n
    \n
    {{ day }}
    \n
    \n
    \n
    \n
    \n \n
    \n {{ day.date.getDate() }}\n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n {{ 'CAL_Occupied' | t | async }}\n
    \n
    \n \n {{ 'CAL_Arrival' | t | async }}\n
    \n
    \n \n {{ 'CAL_Departure' | t | async }}\n
    \n
    \n \n\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { LogService } from '@com/logging';\n\n@Component({\n selector: 'app-checkbox',\n templateUrl: './checkbox.component.html',\n})\nexport class CheckboxComponent {\n isChecked = false;\n @Output() changed = new EventEmitter();\n\n @Input()\n set checked(checked: boolean) {\n this.log.debug(`Checkbox checked: ${this.isChecked} => ${checked}`);\n this.isChecked = checked;\n }\n\n constructor(private log: LogService) {}\n\n onClick() {\n this.isChecked = !this.isChecked;\n this.log.debug(`Checkbox onClick(${this.isChecked})`);\n this.changed.emit(this.isChecked);\n }\n}\n","
    \n \n
    \n \n
    \n \n
    \n","import { Component, ContentChild, ElementRef, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\nimport { LogService } from '@com/logging';\n\n@Component({\n selector: 'app-dropdown',\n templateUrl: './dropdown.component.html',\n})\nexport class DropdownComponent {\n show = false;\n listClassName = 'a-dropdown-list'; // required for fix for IE focus event\n @Output() changed = new EventEmitter();\n\n @Input() data: T[] = [];\n @Input() value: T | undefined;\n @Input() flexsible: boolean | undefined;\n\n @ContentChild('itemTemplate', { static: false }) itemTemplate: TemplateRef | undefined;\n @ContentChild('valueTemplate', { static: false }) valueTemplate: TemplateRef | undefined;\n\n constructor(private log: LogService) {}\n\n onOverlayClick() {\n this.log.debug('Dropdown onOverlayClick()');\n this.show = false;\n }\n\n onFocusOut(e: MouseEvent) {\n this.log.debug('Dropdown onFocusOut()');\n // fix for IE focusout event\n if (e.relatedTarget && (e.relatedTarget as HTMLElement).className !== this.listClassName) {\n this.onOverlayClick();\n }\n }\n\n onItemClick(item: T | undefined) {\n this.log.debug('Dropdown onItemClick()', item);\n this.show = false;\n this.value = item;\n this.changed.emit(this.value);\n }\n\n onValueClick() {\n this.log.debug('Dropdown onValueClick()');\n this.show = !this.show;\n }\n\n onKeyUp(keyCode: number) {\n this.log.debug(`Dropdown onKeyUp(${keyCode})`);\n switch (keyCode) {\n case 32:\n this.onValueClick();\n break; // space\n // case 38: this.selectPrevItem(); break; // up\n // case 40: this.selectNextItem(); break; // down\n }\n }\n}\n","
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n
    \n\n","import {\n Component,\n ContentChild,\n ElementRef,\n HostListener,\n Input,\n OnChanges,\n SimpleChanges,\n TemplateRef,\n} from '@angular/core';\nimport { LogService } from '@com/logging';\n\n@Component({\n selector: 'app-expandable-media-list',\n templateUrl: './expandable-media-list.component.html',\n})\nexport class ExpandableMediaListComponent implements OnChanges {\n // eslint-disable-next-line no-use-before-define\n @Input() usePageContainer = true;\n @Input() insideDetails = false;\n @Input()\n set data(data: T[] | undefined) {\n this._data = data || [];\n }\n\n private _data: T[] = [];\n\n groupList: T[][] = [];\n\n @Input() selected: T | undefined;\n\n @ContentChild('itemTemplate', { static: false }) itemTemplate: TemplateRef | undefined;\n @ContentChild('selectedItemTemplate', { static: false })\n selectedItemTemplate: TemplateRef | undefined;\n\n constructor(private log: LogService) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n this.groupList = ExpandableMediaListComponent.buildGroupList(\n this._data,\n window.innerWidth,\n this.usePageContainer !== true ? 2 : 3,\n );\n }\n\n @HostListener('window:resize')\n onResize() {\n this.log.trace('ExpandableMediaList onResize()');\n this.groupList = ExpandableMediaListComponent.buildGroupList(\n this._data,\n window.outerWidth,\n this.usePageContainer !== true ? 2 : 3,\n );\n }\n\n static buildGroupList(list: T[], width: number, splitterLength: number) {\n const splitter = width >= 992 ? splitterLength : width >= 600 ? 2 : 1;\n const result: T[][] = [];\n let group: T[] = [];\n list.forEach((item) => {\n if (group.length < splitter) {\n group.push(item);\n } else {\n result.push(group);\n group = [item];\n }\n });\n result.push(group);\n return result;\n }\n}\n","
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n\n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n","import {\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { LogService } from '@com/logging';\n\n@Component({\n selector: 'app-popup',\n templateUrl: './popup.component.html',\n})\nexport class PopupComponent {\n shouldShow = false;\n left = 0;\n @Input() align?: 'left' | 'right' | 'center';\n\n @Output() opened = new EventEmitter();\n @Output() closed = new EventEmitter();\n\n @ContentChild('itemTemplate', { static: false }) itemTemplate: TemplateRef | undefined;\n @ContentChild('contentTemplate', { static: false }) contentTemplate: TemplateRef | undefined;\n @ViewChild('popupContent', { static: false }) popupContent: ElementRef | undefined;\n @ViewChild('popupItem', { static: false }) popupItem: ElementRef | undefined;\n\n constructor(private log: LogService) {}\n\n @Input() set show(shouldShow: boolean) {\n this.applyShow(shouldShow);\n }\n\n onItemClick() {\n this.log.debug(`Popup[${this.shouldShow}] onItemClick()`);\n this.applyShow(!this.shouldShow);\n }\n\n onOverlayClick() {\n this.log.debug(`Popup[${this.shouldShow}] onOverlayClick()`);\n this.applyShow(false);\n }\n\n private applyShow(shouldShow: boolean) {\n if (this.shouldShow !== shouldShow) {\n this.left = this.calculatePosition();\n this.shouldShow = shouldShow;\n if (shouldShow) {\n this.opened.emit();\n } else {\n this.closed.emit();\n }\n }\n }\n\n private calculatePosition() {\n if (this.popupItem && this.popupItem.nativeElement) {\n const width = this.popupItem.nativeElement.clientWidth;\n switch (this.align) {\n case 'left':\n return 0;\n case 'right':\n return width;\n default:\n return 0.5 * width;\n }\n }\n return 0;\n }\n}\n","
    \n \n
    \n\n
    \n
    \n \n
    \n\n","import { Injectable } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { LogService } from '../../../../projects/com-logging/src/public-api';\nimport { theme } from '../../../styles/theme';\nimport {\n ApplicationStateService,\n BasketQueryParams,\n ConfigService,\n HotelCodeString,\n HotelService,\n Loader,\n LocaleService,\n} from '../../core';\n\n@Injectable()\nexport class DesignConfiguration {\n constructor(\n private loader: Loader,\n private hotelService: HotelService,\n private applicationState: ApplicationStateService,\n private log: LogService,\n private config: ConfigService,\n private router: Router,\n private route: ActivatedRoute,\n private localeService: LocaleService,\n ) {}\n\n async addPageBackground() {\n await this.loader.using(\n async () => {\n await this.hotelService.BuildApplicationState();\n const res = this.applicationState.BackGroundimage;\n if (res && !res.includes('no-image')) {\n if (this.applicationState.AnimateBackground === 'false') {\n document.body.classList.remove('addBackGroundWithAnimation');\n document.body.classList.add('addBackGround');\n } else {\n document.body.classList.add('addBackGroundWithAnimation');\n }\n document.body.style.backgroundImage = 'url(' + res + ')';\n const w = document.documentElement.clientWidth;\n if (w <= 1170) {\n document.body.classList.add('addBackGround');\n document.body.classList.remove('addBackGroundWithAnimation');\n }\n } else {\n document.body.classList.remove('addBackGround');\n document.body.style.backgroundImage = '';\n }\n },\n 'LOA_HotelInformation',\n false,\n );\n }\n\n addProductScrolling() {\n const w = document.documentElement.clientWidth;\n if (w <= 1170) {\n return true;\n } else {\n return false;\n }\n }\n\n async applyTheme() {\n await this.loader.using(\n async () => {\n try {\n const url = new URL(window.location.href);\n const hotelCode = url.searchParams.get('HotelCode')\n ? url.searchParams.get('HotelCode')\n : this.applicationState.CurrentHotelCode;\n if (hotelCode) {\n const res = await this.hotelService.GetECommerceDepartmentInformation(\n this.applicationState.CurrentHotelCode,\n await this.localeService.getLocale(),\n );\n this.applicationState.ApplicationColor = res.Settings.CustomColor as string;\n this.applicationState.ApplicationColorTextIcon = res.Settings.CustomColorTextIcon as string;\n }\n await this.hotelService.BuildApplicationState();\n this.applicationState.ApplicationColor = await this.RestrictColor(\n this.applicationState.ApplicationColor,\n (\n await this.config.getAppSettings()\n ).PrimaryColor,\n );\n this.applicationState.ApplicationColorTextIcon = await this.RestrictColor(\n this.applicationState.ApplicationColorTextIcon,\n (\n await this.config.getAppSettings()\n ).PrimaryColor,\n );\n\n document.documentElement.style.setProperty(\n '--primary-application-color',\n this.applicationState.ApplicationColor,\n );\n document.documentElement.style.setProperty(\n '--primary-application-color-text-icon',\n this.applicationState.ApplicationColorTextIcon,\n );\n document.documentElement.style.setProperty(\n '--primary-application-font',\n this.applicationState.ApplicationFont,\n );\n\n this.config.applyStyles(theme(this.applicationState.ApplicationColor));\n this.decideDynamicTextColor(this.applicationState.ApplicationColor);\n } catch (err: any) {\n this.log.fatal(`App applyTheme() failed. ${err.message}`);\n }\n },\n undefined,\n false,\n );\n }\n\n async applyHotelChange(hotelCode: HotelCodeString) {\n const queryParams: Partial = {\n HotelCode: hotelCode,\n };\n await this.router.navigate([], {\n replaceUrl: true,\n relativeTo: this.route,\n queryParamsHandling: 'merge',\n queryParams,\n });\n }\n\n private async RestrictColor(color: string, fallback: string) {\n const RestrictedColors = ['', 'none', 'inherit', 'initial'];\n return RestrictedColors.some((restrictedColor) => restrictedColor === color) ? fallback : color;\n }\n\n private decideDynamicTextColor(color: string) {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(color);\n\n let textColor = getComputedStyle(document.documentElement).getPropertyValue('--color-dynamic');\n\n if (result !== null) {\n const R = parseInt(result[1], 16);\n const G = parseInt(result[2], 16);\n const B = parseInt(result[3], 16);\n\n const luminance = (0.299 * R + 0.587 * G + 0.114 * B) / 255;\n\n if (luminance > 0.5) {\n textColor = '#000000';\n } else {\n textColor = '#FFFFFF';\n }\n }\n\n this.applicationState.ApplicationTextColor = textColor;\n document.documentElement.style.setProperty('--color-dynamic', this.applicationState.ApplicationTextColor);\n }\n}\n","import { AfterViewInit, ChangeDetectorRef, Directive, ElementRef, Input, Output } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Directive({\n selector: '[appMaxHeight]',\n})\nexport class MaxHeightDirective implements AfterViewInit {\n @Output() isMaxHeight = new BehaviorSubject(false);\n @Input() maxHeight = 200;\n\n constructor(private el: ElementRef, private cdRef: ChangeDetectorRef) {}\n\n ngAfterViewInit() {\n if (this.el.nativeElement) {\n const { height } = this.el.nativeElement.getBoundingClientRect();\n this.isMaxHeight.next(height > 200);\n this.cdRef.detectChanges();\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'char' })\nexport class CharPipe implements PipeTransform {\n static ConvertToChar(index: number) {\n return String.fromCharCode(index + 65 /*A*/);\n }\n\n transform(index: number | undefined) {\n return typeof index === 'number' ? CharPipe.ConvertToChar(index) : '';\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { map } from 'rxjs/operators';\nimport { LocaleService } from 'src/app/core';\nimport { /*SpectraDate,*/ AspDateString, DateHelper } from 'src/app/helpers';\n\n@Pipe({ name: 'date' })\nexport class DatePipe implements PipeTransform {\n constructor(private ls: LocaleService) {}\n\n transform(date: /*SpectraDate | */ Date | undefined, daysShift: number | undefined) {\n return this.ls.translations$.pipe(\n map((translations) => {\n /*if (date instanceof SpectraDate) {\n const d = daysShift ? date.addDays(daysShift) : date;\n const month = translations[\n `CAL_M${DateHelper.format(d, 'MM')}` as 'CAL_M01'\n ].substring(0, 3);\n return DateHelper.format(d, `DD[.] [${month}] YYYY`);\n }\n\n else */ if (date instanceof Date) {\n const d = daysShift ? DateHelper.addDays(date, daysShift) : date;\n const month = translations[`CAL_M${DateHelper.format(d, 'MM')}` as 'CAL_M01'].substring(0, 3);\n return DateHelper.format(d, `DD[.] [${month}] YYYY`);\n } else if (typeof date === 'string') {\n const _date = DateHelper.FromAspDate(date as AspDateString);\n const d = daysShift ? DateHelper.addDays(_date, daysShift) : _date;\n const month = translations[`CAL_M${DateHelper.format(d, 'MM')}` as 'CAL_M01'].substring(0, 3);\n return DateHelper.format(d, `DD[.] [${month}] YYYY`);\n }\n\n return '';\n }),\n );\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { map } from 'rxjs/operators';\nimport { LocaleService } from 'src/app/core';\nimport { GuestType, RoomGuests } from 'src/app/helpers';\n\n@Pipe({ name: 'guests' })\nexport class GuestsPipe implements PipeTransform {\n constructor(private ls: LocaleService) {}\n\n transform(guests: RoomGuests | undefined) {\n return this.ls.translations$.pipe(\n map((translations) => {\n if (guests instanceof RoomGuests) {\n const adults = guests.get(GuestType.Adult);\n let text = `${adults} ${adults === 1 ? translations.COM_Adult : translations.COM_Guest_10}`;\n const seniors = guests.get(GuestType.Senior);\n if (seniors > 0) {\n text += `, ${seniors} ${translations.COM_Guest_11}`;\n }\n const children = guests.get(GuestType.Child);\n if (children > 0) {\n text += `, ${children} ${children === 1 ? translations.COM_Child : translations.COM_Guest_8}`;\n }\n const infants = guests.get(GuestType.Infant);\n if (infants > 0) {\n text += `, ${infants} ${translations.COM_Guest_7}`;\n }\n const teens = guests.get(GuestType.UnknownType1);\n if (teens > 0) {\n text += `, ${teens} ${translations.COM_Guest_9}`;\n }\n return text;\n }\n return '';\n }),\n );\n }\n}\n","export * from './guests.pipe';\nexport * from './date.pipe';\nexport * from './char.pipe';\nexport * from './number.pipe';\nexport * from './price.pipe';\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'number' })\nexport class NumberPipe implements PipeTransform {\n /**\n * @param format should looks like '(h )(d,)(D2)' where\n * after `h` is ` ` and it is thousands delimiter\n * after `d` is `,` and it is decimal part delimiter\n * after `D` is `2` and it is how many decimal number is used\n */\n static Parse(amount: string, format: string) {\n if (!amount) {\n return null;\n }\n const f = this.ParseFormat(format);\n return parseFloat(amount.replace(new RegExp(f.h, 'g'), '').replace(f.d, '.'));\n }\n\n /**\n * @param format should looks like '(h )(d,)(D2)' where\n * after `h` is ` ` and it is thousands delimiter\n * after `d` is `,` and it is decimal part delimiter\n * after `D` is `2` and it is how many decimal number is used\n */\n static Format(amount: number, format = '(h.)(d,)(D2)') {\n if (typeof amount !== 'number') {\n return '';\n }\n const f = this.ParseFormat(format);\n const parts = amount.toFixed(f.D).split(/[.,]/);\n return (\n parts[0]\n .split('')\n .reverse()\n .reduce((a, b, i) => (i % 3 ? b : b + f.h) + a) + (f.D ? f.d + parts[1] : '')\n );\n }\n\n private static ParseFormat(format: string) {\n const f = { D: 2, d: ',', h: ' ' };\n format.split(/[()]/).forEach((n) => {\n switch (n[0]) {\n case 'D':\n f.D = Math.max(parseInt(n.substr(1), 10), 0);\n break; // numbers after dot\n case 'd':\n f.d = n.substr(1) || f.d;\n break; // number delimiter('.' or ',')\n case 'h':\n f.h = n.substr(1) || f.h;\n break; // large number parts delimiter: 1000000 => 1 000 000\n default:\n }\n });\n return f;\n }\n\n transform(value: number | string | null | undefined, format?: string) {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === 'string') {\n value = parseFloat(value.replace(',', '.'));\n }\n return NumberPipe.Format(value, format);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ApplicationStateService } from 'src/app/core';\nimport { NumberPipe } from './number.pipe';\n\n@Pipe({ name: 'price' })\nexport class PricePipe implements PipeTransform {\n constructor(private applicationState: ApplicationStateService) {}\n\n async transform(value: number | string | null | undefined) {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === 'string') {\n value = parseFloat(value.replace(',', '.'));\n }\n return `${NumberPipe.Format(value)} ${this.applicationState.HotelCurrency}`;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\n\nimport { TranslationModule } from 'src/app/modules/translation';\n\nimport { CalendarInputComponent } from './components/calendar-input/calendar-input.component';\nimport { CalendarComponent } from './components/calendar/calendar.component';\nimport { CheckboxComponent } from './components/checkbox/checkbox.component';\nimport { DropdownComponent } from './components/dropdown/dropdown.component';\nimport { ExpandableMediaListComponent } from './components/expandable-media-list/expandable-media-list.component';\nimport { PopupComponent } from './components/popup/popup.component';\nimport { SlideDownComponent } from './components/animation/slide-down/slide-down.component';\n\nimport { CharPipe, DatePipe, GuestsPipe, NumberPipe, PricePipe } from './pipes';\n\nimport {\n EqualToValidatorDirective,\n HasLowerValidatorDirective,\n HasNumberValidatorDirective,\n HasUpperValidatorDirective,\n} from './validators';\n\nimport { MaxHeightDirective } from './directives/max-height.directive';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ReactiveFormsModule, HttpClientModule, RouterModule, TranslationModule],\n declarations: [\n GuestsPipe,\n DatePipe,\n CharPipe,\n NumberPipe,\n PricePipe,\n CalendarComponent,\n CheckboxComponent,\n DropdownComponent,\n CalendarInputComponent,\n ExpandableMediaListComponent,\n PopupComponent,\n EqualToValidatorDirective,\n HasLowerValidatorDirective,\n HasUpperValidatorDirective,\n HasNumberValidatorDirective,\n MaxHeightDirective,\n SlideDownComponent,\n ],\n exports: [\n GuestsPipe,\n DatePipe,\n CharPipe,\n NumberPipe,\n PricePipe,\n CalendarComponent,\n CheckboxComponent,\n DropdownComponent,\n CalendarInputComponent,\n ExpandableMediaListComponent,\n PopupComponent,\n EqualToValidatorDirective,\n HasLowerValidatorDirective,\n HasUpperValidatorDirective,\n HasNumberValidatorDirective,\n MaxHeightDirective,\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n HttpClientModule,\n RouterModule,\n TranslationModule,\n SlideDownComponent,\n ],\n})\nexport class SharedModule {}\n","import { Directive, Input, OnDestroy } from '@angular/core';\nimport { AbstractControl, NG_VALIDATORS, Validator, ValidatorFn } from '@angular/forms';\nimport { Subscription } from 'rxjs';\n\nexport const equalToValidator = (value: AbstractControl | undefined): ValidatorFn => {\n const equalToControl: AbstractControl | undefined = value;\n return (control: AbstractControl) => {\n if (equalToControl) {\n const appEqualTo = equalToControl.value === control.value;\n return appEqualTo ? null : { appEqualTo: { value: equalToControl.value } };\n }\n return { appEqualTo: { value: undefined } };\n };\n};\n\n@Directive({\n selector: '[appEqualTo]',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: EqualToValidatorDirective,\n multi: true,\n },\n ],\n})\nexport class EqualToValidatorDirective implements Validator, OnDestroy {\n private subscription: Subscription | undefined;\n private equalToControl: AbstractControl | undefined;\n private currentControl: AbstractControl | undefined;\n\n @Input() set appEqualTo(equalToControl: AbstractControl | undefined) {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n if (equalToControl) {\n this.subscription = equalToControl.valueChanges.subscribe(() => {\n if (this.currentControl) {\n this.currentControl.updateValueAndValidity();\n }\n });\n }\n this.equalToControl = equalToControl;\n }\n\n validate(control: AbstractControl) {\n this.currentControl = control;\n return equalToValidator(this.equalToControl)(control);\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n","import { Directive } from '@angular/core';\nimport { AbstractControl, NG_VALIDATORS, Validator, ValidatorFn } from '@angular/forms';\n\nexport const hasLowerValidator = (): ValidatorFn => (control: AbstractControl) => {\n const appHasLower = /[a-z]/.test(control.value);\n return appHasLower ? null : { appHasLower: { value: control.value } };\n};\n\n@Directive({\n selector: '[appHasLower]',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: HasLowerValidatorDirective,\n multi: true,\n },\n ],\n})\nexport class HasLowerValidatorDirective implements Validator {\n validate(control: AbstractControl) {\n return hasLowerValidator()(control);\n }\n}\n","import { Directive } from '@angular/core';\nimport { AbstractControl, NG_VALIDATORS, Validator, ValidatorFn } from '@angular/forms';\n\nexport const hasNumberValidator = (): ValidatorFn => (control: AbstractControl) => {\n const appHasNumber = /[0-9]/.test(control.value);\n return appHasNumber ? null : { appHasNumber: { value: control.value } };\n};\n\n@Directive({\n selector: '[appHasNumber]',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: HasNumberValidatorDirective,\n multi: true,\n },\n ],\n})\nexport class HasNumberValidatorDirective implements Validator {\n validate(control: AbstractControl) {\n return hasNumberValidator()(control);\n }\n}\n","import { Directive } from '@angular/core';\nimport { AbstractControl, NG_VALIDATORS, Validator, ValidatorFn } from '@angular/forms';\n\nexport const hasUpperValidator = (): ValidatorFn => (control: AbstractControl) => {\n const appHasUpper = /[A-Z]/.test(control.value);\n return appHasUpper ? null : { appHasUpper: { value: control.value } };\n};\n\n@Directive({\n selector: '[appHasUpper]',\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: HasUpperValidatorDirective,\n multi: true,\n },\n ],\n})\nexport class HasUpperValidatorDirective implements Validator {\n validate(control: AbstractControl) {\n return hasUpperValidator()(control);\n }\n}\n","export * from './equal-to-validator.directive';\nexport * from './has-lower-validator.directive';\nexport * from './has-upper-validator.directive';\nexport * from './has-number-validator.directive';\n","import packageInfo from '../../package.json';\n\nexport const environment = {\n production: true,\n version: packageInfo.version,\n configUrl: '/confighandler.ashx',\n testBaseUrl: '',\n};\n","import { messages } from './base';\n\nexport enum Locale {\n GB = 'en-GB',\n DK = 'da-DK',\n SE = 'sv-SE',\n DE = 'de-DE',\n NO = 'nn-NO',\n FO = 'fo-FO',\n GL = 'kl-GL',\n IS = 'is-IS',\n}\n\nexport const SupportedLocales = [\n Locale.GB,\n Locale.DK,\n Locale.SE,\n Locale.DE,\n Locale.NO,\n Locale.FO,\n Locale.GL,\n Locale.IS,\n];\n\nconst IsoLocaleMap: { [K in Locale]: { locale: string } } = {\n [Locale.GB]: { locale: 'en-gb' },\n [Locale.DK]: { locale: 'da' },\n [Locale.SE]: { locale: 'sv' },\n [Locale.DE]: { locale: 'de' },\n [Locale.NO]: { locale: 'nb' },\n [Locale.FO]: { locale: 'da' },\n [Locale.GL]: { locale: 'da' },\n [Locale.IS]: { locale: 'is' },\n};\n\nexport const getIsoFromLocale = (locale: Locale) => {\n return IsoLocaleMap[locale].locale;\n};\n\nexport type Messages = typeof messages;\nexport type Message = keyof Messages;\n","import { Messages } from './index';\r\n\r\nexport const messages: Messages = {\r\n APA_CompanyLogin: `Firma login`,\r\n APA_Logout: `Log ud`,\r\n APA_Welcome: `Velkommen`,\r\n APA_ShowPromo: `Rabatkode`,\r\n APA_PromoLabel: `Indtast rabatkode`,\r\n APA_Promo: `Rabatkode`,\r\n APA_PromoSubmit: `Benyt`,\r\n APA_PromoChange: `ændre`,\r\n APA_ActivateHead: `Aktiver dit login`,\r\n APA_ActivateDesc: `Angiv adgangskode for at aktivere login for`,\r\n APA_Password: `Adgangskode`,\r\n APA_ConfirmPassword: `Bekræft adgangskode`,\r\n APA_PasswordHasUpper: `Adgangskode skal indeholde mindst et stort bogstav (A-Z)`,\r\n APA_PasswordHasLower: `Adgangskode skal indeholde mindst et lille bogstav (a-z)`,\r\n APA_PasswordHasNumber: `Adgangskode skal indeholde mindst et tal (0-9)`,\r\n APA_PasswordLength8: `Adgangskode skal indeholde mindst 8 karakterer`,\r\n APA_ConfirmPasswordEqualTo: `Forkert adgangskode`,\r\n APA_Activate: `Aktiver`,\r\n APA_CustomerNotFound: `Kunde ikke fundet`,\r\n APA_ResetBasket: `Alt vil blive fjernet fra kurven. Er du sikker?`,\r\n APA_Address: `Adresse`,\r\n APA_Contact: `Kontakt`,\r\n APA_VatNumber: `CVR:`,\r\n APA_PromoMessageStart: `Kampagne koden`,\r\n APA_ValidTime: `Gyldigheds periode`,\r\n APA_PromoMessageEnd: `Koden er gyldig på de produkter der er markeret med en procentvis rabat`,\r\n APA_AQCDecription: `Aldersbeskrivelse`,\r\n APA_Year: `år`,\r\n APA_Book: `Book`,\r\n\r\n CPA_NothingAvailable_EmptyText: `Vælg venligst en ny dato herunder, eller gå tilbage og ændre dine oplysninger fra første step`,\r\n CPA_NothingAvailable: `Der er ingen ledige værelser, der opfylder dine kriterier`,\r\n CPA_SoldOut: `Udsolgt`,\r\n CPA_CustomerInvalid: `Ukendt kundeprofil`,\r\n CPA_PromoInvalid: `Den indtastede rabatkode er ugyldig.`,\r\n CPA_PromoBetween: `Den indtastede rabatkode er kun gyldig hvis opholdet er i perioden:`,\r\n\r\n RPA_More: `Se mere`,\r\n RPA_Select: `Vælg`,\r\n RPA_Selected: `Valgt`,\r\n RPA_From: `Starter fra`,\r\n RPA_Image: `Intet billede`,\r\n RPA_Description: `Beskrivelse`,\r\n RPA_ChooseRoom: `Vælg værelse`,\r\n RPA_ChoosePackage: `Vælg ophold`,\r\n RPA_ChooseCabin: `Vælg Hytte`,\r\n RPA_ChooseHouse: `Vælg Hus`,\r\n RPA_ChooseUnit: `Vælg enhed`,\r\n RPA_BackRate: `Vælg en anden pakke`,\r\n RPA_MaxPersons: `Maks antal personer`,\r\n RPA_ChooseYourRoom: `Vælg værelse`,\r\n RPA_ChooseYourCabin: `Vælg hytte`,\r\n RPA_ChooseYourHouse: `Vælg hus`,\r\n RPA_ChooseYourUnit: `Vælg enhed`,\r\n RPA_ChooseYourPackage: `Vælg ophold`,\r\n\r\n APA_Services: `Ekstra tilkøb`,\r\n APA_Add: `Tilføj`,\r\n APA_Added: `Tilføjet`,\r\n APA_Remove: `Fjern`,\r\n APA_ContentDialog: `Vælg det antal personer og dage du ønsker den valgte service. Mellem datoerne`,\r\n APA_ChooseYourAddOns: `Vælg ekstra tilkøb`,\r\n APA_TotalPrice: `Samlet pris`,\r\n APA_TotalInBasket: `stk, i alt`,\r\n APA_TotalOf: `Vælg antal à`,\r\n\r\n CUP_Header: `Købers oplysninger`,\r\n CUP_Accept: `Accepter betingelser`,\r\n CUP_FName: `Fornavn`,\r\n CUP_FNameReq: `Fornavn skal oplyses`,\r\n CUP_FPhoneReq: `Mobil skal oplyses`,\r\n CUP_LName: `Efternavn`,\r\n CUP_LNameReq: `Efternavn skal oplyses`,\r\n CUP_Address: `Adresse`,\r\n CUP_AddressReq: `Adressen skal oplyses`,\r\n CUP_ZipCode: `Postnummer`,\r\n CUP_ZipCodeReq: `Postnr. skal oplyses`,\r\n CUP_City: `By`,\r\n CUP_CityReq: `By skal oplyses`,\r\n CUP_Contry: `Land`,\r\n CUP_ContryReq: `Land er påkrævet`,\r\n CUP_Phone: `Mobil`,\r\n CUP_PhoneReq: `Mobilnr. skal oplyses`,\r\n CUP_Email: `E-mail`,\r\n CUP_EmailRepeat: `Gentag E-mail`,\r\n CUP_EmailReq: `E-mail skal oplyses`,\r\n CUP_EmailInvalid: `E-mail er ikke korrekt`,\r\n CUP_Comment: `Kommentarer`,\r\n CUP_NeedSubscribe: `Jeg vil gerne modtage nyheder pr. e-mail.`,\r\n CUP_AcceptTerms: `Jeg har læst og accepterer betingelserne.`,\r\n CUP_BookNow: `Book`,\r\n CUP_CancelPolicyHeader: `Afbestillingsforsikring`,\r\n CUP_CancelPolicyDesc: `Du har mulighed for at annullere dit ophold hvis du skulle blive forhindret i at ankomme. Se yderligere oplysninger om vilkår for afbestillingsbeskyttelsen i vores betingelser.`,\r\n CUP_CancelPolicyLabel: `Ja, jeg vil gerne tilkøbe afbestillingsforsikring til`,\r\n CUP_GuestInfo: `Gæsteoplysninger`,\r\n CUP_BookingOverview: `Booking oversigt`,\r\n CUP_PayWithGiftcard: `For at betale med gavekort`,\r\n CUP_PayWithGiftcardClick: `Klik her`,\r\n CUP_PayWithGiftcardDescription: `Indtast koden fra dit gavekort`,\r\n CUP_PayWithGiftcardError: `Gavekort er ikke aktivt eller kunne ikke findes i systemet.`,\r\n CUP_PayWithGiftcardStatus: `Gavekort aktivt`,\r\n CUP_PayWithGiftcardDiscount: `Gavekort beløb`,\r\n CUP_PayWithGiftcardHeader: `Gavekort`,\r\n CUP_PayWithGiftcardInformation: `Vil du indløse et gavekort?`,\r\n CUP_PayWithGiftcardPlaceholder: `Gavekortskode`,\r\n CUP_PayWithGiftcardRedeem: `Indløs`,\r\n CUP_BookingOverviewToPay: `At betale`,\r\n\r\n PAL_GoToPayment: `Gå til betaling`,\r\n PAL_PaymentComplete: `Linket er udløbet. Kontakt venligst`,\r\n PAL_PaymentNotAvailable: `Betaling på denne reservation er ikke tilgængelig`,\r\n\r\n PAR_Payment: `Betaling`,\r\n PAR_SeekAuthorization: `Dine kreditkortoplysninger vil blive brugt som betaling, eller alternativt som sikkerhed for købet.`,\r\n PAR_TotalLabel: `Pris på din bestilling`,\r\n PAR_TotalPayLabel: `Pris at betale`,\r\n PAR_OBSLabel: `VIGTIGT: Luk ikke dette vindue, før kvitteringssiden vises, hvorpå du kan se dit ordre-/reservationsnummer!`,\r\n PAR_OBSLabelGiftcard: `OBS: Luk ikke dette vindue før kvitteringsside vises med et ordrenummer!`,\r\n PAR_FailedToPay: `Det lykkedes ikke at betale. Tjek dit kortnummer.`,\r\n PAR_CardInvalid: `Kortnummer er ikke gyldigt`,\r\n PAR_CardUnknown: `Korttype ikke kendt`,\r\n PAR_CardMonthInvalid: `Måned er ugyldig`,\r\n PAR_CardYearInvalid: `År er ugyldig`,\r\n PAR_CardCVCInvalid: `CVV-kode er ugyldig`,\r\n PAR_FieldRequired: `Skal udfyldes`,\r\n PAR_Cancel: `Annuller`,\r\n PAR_Pay: `Betal`,\r\n PAR_PaymentMethod: `Betalingsmetoder`,\r\n PAR_Cardnumber: `Kortnummer`,\r\n PAR_MonthPlaceholder: `MM`,\r\n PAR_YearPlaceholder: `ÅÅ`,\r\n\r\n PFP_Header: `Hov! Der er desværre sket en fejl`,\r\n PFP_Info: `Og din ordre er IKKE gået igennem. Prøv venligst igen ved at klikke på knappen herunder. Der er ikke blevet trukket penge på din konto.`,\r\n PFP_TryAgain: `Prøv igen`,\r\n\r\n REP_Header: `Tak for din bestilling,`,\r\n REP_Comment: `herunder finder du din kvittering for din ordre.`,\r\n REP_DateRooms: `Rejsedato`,\r\n REP_Return: `Tilbage til hjemmeside`,\r\n REP_OrderId: `Ordrenummer`,\r\n REP_ReservationId: `Ordrenummer`,\r\n REP_CustomerInfo: `Personlige oplysninger`,\r\n\r\n REP_Name: `Navn`,\r\n REP_PostCity: `Postnr & By`,\r\n REP_Phone: `Telefon`,\r\n REP_Address: `Adresse`,\r\n REP_Country: `Land`,\r\n REP_Email: `Email`,\r\n REP_Thanks: `Tak for din ordre`,\r\n REP_ThanksInfo: `Du vil modtage en bekræftelse indenfor kort tid på mail.`,\r\n REP_ThanksPayment: `Din betaling er gennemført`,\r\n\r\n LOA_Addons: `Henter ekstra ydelser`,\r\n LOA_CustomerInfo: `Henter kunde informationer`,\r\n LOA_ActivatingCustomer: `Aktiver kunde`,\r\n LOA_Translations: `Henter oversættelser`,\r\n LOA_Configuration: `Indlæser konfiguration`,\r\n LOA_Availability: `Henter ledighed`,\r\n LOA_CreatingReservation: `Opretter reservation`,\r\n LOA_HotelInformation: `Indlæser hotel information`,\r\n LOA_Countries: `Henter lande`,\r\n LOA_PreparingPaymnent: `Forbereder betaling`,\r\n LOA_ApplyingPromo: `Indlæser rabatkode`,\r\n LOA_Rooms: `Indlæser værelser`,\r\n LOA_Rates: `Indlæser priser`,\r\n LOA_LoggingIn: `Logger ind`,\r\n LOA_SendingInformation: `Sender information`,\r\n\r\n COM_Continue: `Fortsæt`,\r\n COM_OK: `OK`,\r\n COM_Persons: `Personer`,\r\n COM_Guest_10: `Voksne`,\r\n COM_Guest_9: `Teenagere`,\r\n COM_Guest_7: `Baby`,\r\n COM_Guest_11: `Seniorer`,\r\n COM_Guest_8: `Børn`,\r\n COM_Adult: `Voksen`,\r\n COM_Child: `Barn`,\r\n COM_Room: `Værelse`,\r\n COM_Cabin: `Hytte`,\r\n COM_House: `Hus`,\r\n COM_Unit: `Enhed`,\r\n COM_Arrival: `Ankomst`,\r\n COM_Departure: `Afrejse`,\r\n COM_Promocode: `Rabatkode`,\r\n COM_Rooms: `Værelser`,\r\n COM_AddOns: `Ekstra ydelser`,\r\n COM_TotalGuests: `Antal gæster`,\r\n COM_Price: `Pris`,\r\n COM_TotalPrice: `Pris total`,\r\n COM_TotalPriceWithTransactionId: `I alt betalt med transaktionsnr.`,\r\n COM_TotalReservedWithTransactionId: `I alt er reserveret med transactionId`,\r\n COM_Close: `Luk`,\r\n COM_Back: `Tilbage`,\r\n COM_Error: `Info`,\r\n COM_Info: `Information`,\r\n COM_Confirm: `Bekræft`,\r\n COM_Package: `Pakke`,\r\n COM_SoldOutError: `Der er ikke nogle ledige værelser eller pakker på denne dag`,\r\n COM_SearchNew: `Ny søgning`,\r\n COM_TableReservation: `Bord Reservation`,\r\n COM_TableNumberOfPersons: `Antal personer ved bordet`,\r\n COM_Guests: `Gæster`,\r\n COM_TableChooseProduct: `Vælg dato og produkt`,\r\n COM_TablePlaceGuests: `Du mangler at placere`,\r\n COM_TableChooseProducts: `Vælg produkt(er)`,\r\n COM_TableNumberOfGuestsForProduct: `Antal gæster til dette produkt`,\r\n COM_TableBookingFlowAddProduct: `Ønsker du at lave en bord reservation på dit ophold?`,\r\n COM_TableIfNotPressContinue: `Ellers tryk fortsæt`,\r\n COM_AddToBasket: `Læg i kurv`,\r\n COM_AddedToBasket: `Tilføjet til kurv`,\r\n COM_Type: `Type`,\r\n COM_SeatingSoldOut: `Der er ikke noget ledigt på nuværende tidspunkt`,\r\n COM_Main: `Startside`,\r\n COM_Conference: `Konference`,\r\n COM_Quantity: `Antal`,\r\n\r\n LFO_Email: `E-mail`,\r\n LFO_EmailRequried: `E-mail skal oplyses`,\r\n LFO_EmailInvalid: `E-mail er ikke korrekt`,\r\n LFO_Password: `Adgangskode`,\r\n LFO_PasswordRequried: `Adgangskode påkrævet`,\r\n LFO_ForgotPassword: `Kan du ikke tilgå din konto ?`,\r\n LFO_Login: `Log ind`,\r\n LFO_BackToLogin: `Tilbage til indlogning`,\r\n LFO_Send: `Send`,\r\n LFO_MessageSend: `Besked afsendt!`,\r\n LFO_LoginError: `Forkert e-mail eller adgangskode`,\r\n LFO_RecoveryError: `Loginoplysninger ugyldige`,\r\n\r\n SFO_ChooseHotel: `Vores hoteller`,\r\n SFO_ChooseHolidayResort: `Vores Feriecentere`,\r\n SFO_ChooseCenter: `Vores Centre`,\r\n SFO_ChooseDepartment: `Vælg Afdeling`,\r\n SFO_ParamsHeader: `Vælg rejsedato`,\r\n SFO_Guests: `Gæster i værelse`,\r\n SFO_GuestsCabin: `Gæster i Hytte`,\r\n SFO_GuestsHouse: `Gæster i Hus`,\r\n SFO_GuestsUnit: `Gæster i Enhed`,\r\n SFO_AddRoom: `Flere værelser`,\r\n SFO_AddCabin: `Flere hytter`,\r\n SFO_AddHouse: `Flere huse`,\r\n SFO_AddUnit: `Flere enheder`,\r\n SFO_BookStay: `ophold`,\r\n SFO_BookEvent: `Event`,\r\n SFO_BookTakeAway: `Take Away`,\r\n SFO_BookTableReservation: `Bord Reservation`,\r\n SFO_BookGiftcard: `Gavekort`,\r\n SFO_GiftcardMetaData: `Grunddata for dine gavekort`,\r\n SFO_ChooseGiftcard: `Vælg Gavekort`,\r\n SFO_NumberOfGiftcards: `Hvor mange af de valgte gavekort vil du købe?`,\r\n SFO_GiftcardAmount: `Indtast beløb`,\r\n SFO_GiftcardEnterDetails: `Udfyld detaljer for dine gavekort`,\r\n SFO_ChooseGiftcardDescription: `Køb et gavekort til en du holder af`,\r\n SFO_GiftcardDetails: `Gavekort detaljer`,\r\n SFO_GiftcardTo: `Hvem er gavekortet til (valgfrit)`,\r\n SFO_GiftcardFrom: `Hvem er gavekortet fra (valgfrit)`,\r\n SFO_GiftcardMessage: `Skriv en hilsen (Maks 100 tegn) (valgfrit)`,\r\n SFO_BookArrangement: `Arrangement`,\r\n SFO_BookConcert: `Koncert`,\r\n SFO_BookTableArangement: `Bord/Arrangement`,\r\n SFO_BookTableEvent: `Bord/Event`,\r\n SFO_BordTakeAway: `Bord/take away`,\r\n SFO_BookTicket: `Billet`,\r\n SFO_BookLecture: `Foredrag`,\r\n SFO_BookTable: `Bestil Bord`,\r\n SFO_BookSpa: `Spa`,\r\n SFO_BookExperience: `Oplevelse`,\r\n SFO_ChooseMonth: `Vælg Måned`,\r\n SFO_NoRooms: `Der blev ikke fundet nogle ledige værelser i det valgte tidsrum!`,\r\n SFO_MinLOS: `Den valgte periode kræver booking af minimum`,\r\n SFO_Nights: `nætter`,\r\n SFO_MaxLOS: `I den valgte periode er det maksimalt muligt at booke`,\r\n\r\n CAL_WeekStart: `1`,\r\n CAL_M01: `Januar`,\r\n CAL_M02: `Februar`,\r\n CAL_M03: `Marts`,\r\n CAL_M04: `April`,\r\n CAL_M05: `Maj`,\r\n CAL_M06: `Juni`,\r\n CAL_M07: `Juli`,\r\n CAL_M08: `August`,\r\n CAL_M09: `September`,\r\n CAL_M10: `Oktober`,\r\n CAL_M11: `November`,\r\n CAL_M12: `December`,\r\n CAL_D0: `Søndag`,\r\n CAL_D1: `Mandag`,\r\n CAL_D2: `Tirsdag`,\r\n CAL_D3: `Onsdag`,\r\n CAL_D4: `Torsdag`,\r\n CAL_D5: `Fredag`,\r\n CAL_D6: `Lørdag`,\r\n CAL_Selected: `Valgt`,\r\n CAL_Occupied: `Lukket/udsolgt`,\r\n CAL_Arrival: `Lukket for ankomst`,\r\n CAL_Departure: `Lukket for afrejse`,\r\n CAL_Mon: `M`,\r\n CAL_Tirs: `T`,\r\n CAL_Ons: `O`,\r\n CAL_Tors: `T`,\r\n CAL_Fre: `F`,\r\n CAL_Lor: `L`,\r\n CAL_Sun: `S`,\r\n CAL_Available: `Ledigt`,\r\n CAL_NotPossible: `Ikke muligt`,\r\n\r\n BIN_ChangeDate: `Ret dato`,\r\n BIN_ChangeRoom: `Ret`,\r\n BIN_ChangeAddOns: `Ændre ekstra ydelser`,\r\n BIN_NoAddOns: `Ingen ekstra ydelser tilføjet`,\r\n BIN_AddOns: `Ekstra ydelser tilføjet`,\r\n BIN_Reservation: `Din Reservation`,\r\n BIN_Details: `Basis Detaljer`,\r\n BIN_RoomCount: `Værelser`,\r\n BIN_CabinCount: `Hytter`,\r\n BIN_HouseCount: `Huse`,\r\n BIN_UnitCount: `Enheder`,\r\n BIN_Roomtype: `Værelsestype`,\r\n BIN_Cabintype: `Hytte type`,\r\n BIN_Housetype: `Hustype`,\r\n BIN_Unittype: `Enheds type`,\r\n BIN_Packagetype: `Pakketype`,\r\n BIN_BasketEmpty: `Kurven er tom`,\r\n BIN_BasketGoToCheckout: `Gå til kassen`,\r\n\r\n EXC_EmptyBasket: `Kurven må ikke være tom`,\r\n\r\n SEA_Date: `Dato`,\r\n SEA_Time: `Tid`,\r\n SEA_Quantity: `Antal`,\r\n SEA_Skip: `Spring over`,\r\n SEA_ChooseEvent: `Vælg en oplevelse`,\r\n SEA_DescriptionStart: `Vælg`,\r\n SEA_DescriptionEnd: `nedenfor eller dato i kalenderen`,\r\n SEA_SoldOut: `Alt er udsolgt for den valgte måned`,\r\n SEA_SoldOutContinue: `Tryk på Fortsæt for at springe over`,\r\n SEA_SeatingStandAloneTitle: `Vælg en dato eller en af de viste valgmuligheder`,\r\n SEA_ResetCalendar: `Vis alle`,\r\n\r\n MAT_CALENDAR_Calendar_Label: `S`,\r\n MAT_CALENDAR_Close_Calendar_Label: `S`,\r\n MAT_CALENDAR_End_Date_Label: `S`,\r\n MAT_CALENDAR_Next_Month_Label: `S`,\r\n MAT_CALENDAR_Next_Multi_Year_Label: `S`,\r\n MAT_CALENDAR_Next_Year_Label: `S`,\r\n MAT_CALENDAR_Open_Calendar_Label: `S`,\r\n MAT_CALENDAR_Prev_Month_Label: `S`,\r\n MAT_CALENDAR_Prev_Multi_Year_Label: `S`,\r\n MAT_CALENDAR_Prev_Year_Label: `S`,\r\n MAT_CALENDAR_Start_Date_Label: `S`,\r\n MAT_CALENDAR_Switch_To_Month_View_Label: `S`,\r\n MAT_CALENDAR_Switch_To_Multi_Year_View_Label: `S`,\r\n};\r\n","import { Messages } from './index';\r\n\r\nexport const messages: Messages = {\r\n APA_CompanyLogin: `Unternehmen Login`,\r\n APA_Logout: `Abmelden`,\r\n APA_Welcome: `Wilkommen`,\r\n APA_ShowPromo: `Aktionscode`,\r\n APA_PromoLabel: `Aktionscode eintragen`,\r\n APA_Promo: `Aktionscode`,\r\n APA_PromoSubmit: `Benutzen`,\r\n APA_PromoChange: `Veränderung`,\r\n APA_ActivateHead: `Aktivieren Sie Ihr Login`,\r\n APA_ActivateDesc: `Geben Sie das Passwort ein, um den Login zu aktivieren`,\r\n APA_Password: `Passwort`,\r\n APA_ConfirmPassword: `Passwort bestätigen`,\r\n APA_PasswordHasUpper: `Das Passwort muss mindestens einen Großbuchstaben enthalten (A-Z)`,\r\n APA_PasswordHasLower: `Passwort muss mindestens einen Kleinbuchstaben enthalten (a-z)`,\r\n APA_PasswordHasNumber: `Passwort muss mindestens eine Nummer enthalten (0-9)`,\r\n APA_PasswordLength8: `Das Passwort muss mindestens 8 Zeichen enthalten`,\r\n APA_ConfirmPasswordEqualTo: `Falsches Passwort`,\r\n APA_Activate: `Aktiveren`,\r\n APA_CustomerNotFound: `Kunde nicht verfügbar`,\r\n APA_ResetBasket: `Alles wird aus dem Warenkorb entfernt werden. Bist du sicher?`,\r\n APA_Address: `Adresse`,\r\n APA_Contact: `Kontakt`,\r\n APA_VatNumber: `CVR:`,\r\n APA_PromoMessageStart: `Kampagne Kode`,\r\n APA_ValidTime: `Gültigkeitsperiode`,\r\n APA_PromoMessageEnd: `Der Kode gilt für alle Produkte die mit einem prozentualen Rabatt markiert sind.`,\r\n APA_AQCDecription: `Altersbeschreibung`,\r\n APA_Year: `Jahre`,\r\n APA_Book: `Buchen`,\r\n\r\n CPA_NothingAvailable_EmptyText: `Bitte wählen Sie ein neues Datum unten, oder gehen Sie zurück und Ihre Informationen aus dem ersten Schritt ändern`,\r\n CPA_NothingAvailable: `Es gibt keine Zimmer, die Ihren Kriterien entsprechen`,\r\n CPA_SoldOut: `Ausverkauft`,\r\n CPA_CustomerInvalid: `Der Kunde ist nicht gültig`,\r\n CPA_PromoInvalid: `Aktionscode ist ungültig`,\r\n CPA_PromoBetween: `Der eingegebene Aktionscode ist nur gültig, wenn sich der Aufenthalt im diesem Zeitraum befindet:`,\r\n\r\n RPA_More: `Mehr`,\r\n RPA_Select: `Wählen`,\r\n RPA_Selected: `Ausgewählt`,\r\n RPA_From: `Beginnend ab`,\r\n RPA_Image: `Kein bild`,\r\n RPA_Description: `Beschreibung`,\r\n RPA_ChooseRoom: `Zimmer Wählen`,\r\n RPA_ChoosePackage: `Paket Wählen`,\r\n RPA_ChooseCabin: `Kabine Wählen`,\r\n RPA_ChooseHouse: `Haus Wählen`,\r\n RPA_ChooseUnit: `Einheit Wählen`,\r\n RPA_BackRate: `Wählen Sie ein anderes Paket`,\r\n RPA_MaxPersons: `Maximale Anzahl von Personen`,\r\n RPA_ChooseYourRoom: `Wählen Sie Ihr Zimmer`,\r\n RPA_ChooseYourCabin: `Wählen Sie Ihre Kabine`,\r\n RPA_ChooseYourHouse: `Wähle dein Haus`,\r\n RPA_ChooseYourUnit: `Wählen sie ihren Gerätetyp`,\r\n RPA_ChooseYourPackage: `Wählen Sie Ihr Paket`,\r\n\r\n APA_Services: `Dienstleistungen`,\r\n APA_Add: `Hinzufügen`,\r\n APA_Added: `Hinzugefügt`,\r\n APA_Remove: `Löschen`,\r\n APA_ContentDialog: `Wählen Sie die Anzahl der Personen und Tage aus an denen der Dienst ausgewählt werden soll. Zwischen den Daten`,\r\n APA_ChooseYourAddOns: `Wählen Sie Zusätzliche Leistungen`,\r\n APA_TotalPrice: `Gesamtkosten`,\r\n APA_TotalInBasket: `Stück, insgesamt`,\r\n APA_TotalOf: `Wählen Sie eine Menge von`,\r\n\r\n CUP_Header: `Gästedetails`,\r\n CUP_Accept: `Akzeptieren`,\r\n CUP_FName: `Vorname`,\r\n CUP_FNameReq: `Vorname ist erforderlich`,\r\n CUP_FPhoneReq: `Handynummer ist erforderlich`,\r\n CUP_LName: `Nachname`,\r\n CUP_LNameReq: `Nachname ist erforderlich`,\r\n CUP_Address: `Adresse`,\r\n CUP_AddressReq: `Adresse ist erforderlich`,\r\n CUP_ZipCode: `Postleitzahl`,\r\n CUP_ZipCodeReq: `PLZ erforderlich`,\r\n CUP_City: `Stadt`,\r\n CUP_CityReq: `Stadt ist erforderlich`,\r\n CUP_Contry: `Land`,\r\n CUP_ContryReq: `Land erforderlich`,\r\n CUP_Phone: `Handynummer`,\r\n CUP_PhoneReq: `Handynummer ist erforderlich`,\r\n CUP_Email: `E-mail`,\r\n CUP_EmailRepeat: `Wiederholen E-mail`,\r\n CUP_EmailReq: `Email ist erforderlich`,\r\n CUP_EmailInvalid: `E-Mail nicht gültig`,\r\n CUP_Comment: `Kommentar`,\r\n CUP_NeedSubscribe: `Newsletter abonnieren`,\r\n CUP_AcceptTerms: `Ich habe die Bedingungen gelesen und akzeptier`,\r\n CUP_BookNow: `Jetzt buchen`,\r\n CUP_CancelPolicyHeader: `Reiserücktrittsversicherung`,\r\n CUP_CancelPolicyDesc: `Sie haben die Möglichkeit Ihren Aufenthalt zu stornieren, wenn Sie es nicht machen können. Sehen Sie weitere Informationen in Bezug auf Rücktrittsversicherung in unseren Buchungsbedingungen.`,\r\n CUP_CancelPolicyLabel: `Ja, ich möchte Rücktrittsversicherung kaufen für`,\r\n CUP_GuestInfo: `Gästeinformation`,\r\n CUP_BookingOverview: `Buchungsübersicht`,\r\n CUP_PayWithGiftcard: `Mit Geschenkkarte bezahlen`,\r\n CUP_PayWithGiftcardClick: `Klicke hier`,\r\n CUP_PayWithGiftcardDescription: `Geben Sie Ihren Code von Ihrer Geschenkkarte ein`,\r\n CUP_PayWithGiftcardError: `Geschenkkarten sind nicht aktiv oder konnten nicht im System gefunden werden.`,\r\n CUP_PayWithGiftcardStatus: `Geschenkkarte aktiv`,\r\n CUP_PayWithGiftcardDiscount: `Geschenkkartenbetrag`,\r\n CUP_PayWithGiftcardHeader: `Geschenkkarte`,\r\n CUP_PayWithGiftcardInformation: `Sie möchten einen Geschenkgutschein einlösen?`,\r\n CUP_PayWithGiftcardPlaceholder: `Geschenkgutscheincode`,\r\n CUP_PayWithGiftcardRedeem: `Einlösen`,\r\n CUP_BookingOverviewToPay: `Bezahlen`,\r\n\r\n PAL_GoToPayment: `Zur Zahlung gehen`,\r\n PAL_PaymentComplete: `Der Link ist abgelaufen. Bitte kontaktieren`,\r\n PAL_PaymentNotAvailable: `Payment on this reservation is not available`,\r\n\r\n PAR_Payment: `Zahlung`,\r\n PAR_SeekAuthorization: `Ihre Kreditkartendaten werden als Zahlungsmittel, oder als Garantie für den Kauf verwendet.`,\r\n PAR_TotalLabel: `Preis für Ihre Bestellung`,\r\n PAR_TotalPayLabel: `Zu zahlender Preis`,\r\n PAR_OBSLabel: `WICHTIG: Schließen Sie dieses Fenster nicht, bis die Quittungsseite erscheint, auf der Sie Ihre Bestell- / Reservierungsnummer sehen können!`,\r\n PAR_OBSLabelGiftcard: `HINWEIS: Bleiben Sie auf der Seite bis die Quittungsseite mit einer bestellnummer angezeigt wird`,\r\n PAR_FailedToPay: `Fehlgeschlagen zu zahlen. Überprüfen Sie Ihre Kartennummer.`,\r\n PAR_CardInvalid: `Kartennummer ist ungültig`,\r\n PAR_CardUnknown: `Speicherkarten-Typ nicht bekannt`,\r\n PAR_CardMonthInvalid: `Monat ist ungültig`,\r\n PAR_CardYearInvalid: `Jahr ist ungültig`,\r\n PAR_CardCVCInvalid: `CVV-Code ist ungültig`,\r\n PAR_FieldRequired: `Dieses Feld wird benötigt`,\r\n PAR_Cancel: `Schliessen`,\r\n PAR_Pay: `Zahlen`,\r\n PAR_PaymentMethod: `Zahlungsmethode`,\r\n PAR_Cardnumber: `Kartennummer`,\r\n PAR_MonthPlaceholder: `MM`,\r\n PAR_YearPlaceholder: `JJ`,\r\n\r\n PFP_Header: `Huf! Leider ist ein Fehler aufgetreten`,\r\n PFP_Info: `Und Ihr Auftrag durch nicht gegangen. Bitte versuchen Sie es erneut, indem Sie den Button klicken. Kein Geld wurde von Ihrem Konto abgezogen.`,\r\n PFP_TryAgain: `Versuchen Sie es nochmal`,\r\n\r\n REP_Header: `Vielen Dank für Ihre Bestellung,`,\r\n REP_Comment: `Weiter unten finden Sie Ihre Quittung für Ihre Bestellung.`,\r\n REP_DateRooms: `Reisedatum`,\r\n REP_Return: `Zurück zur Website`,\r\n REP_OrderId: `Bestellnummer`,\r\n REP_ReservationId: `Bestellnummer`,\r\n REP_CustomerInfo: `Persönliche Angaben`,\r\n\r\n REP_Name: `Name`,\r\n REP_PostCity: `Postleitzahl Stadt`,\r\n REP_Phone: `Telefon`,\r\n REP_Address: `Adresse`,\r\n REP_Country: `Land`,\r\n REP_Email: `Email`,\r\n REP_Thanks: `Vielen Dank für Ihre Bestellung`,\r\n REP_ThanksInfo: `Innerhalb kurzer Zeit bekommen Sie einen Bestätigung auf Email.`,\r\n REP_ThanksPayment: `Unsere Zahlung ist abgeschlossen`,\r\n\r\n LOA_Addons: `Laden Add-ons`,\r\n LOA_CustomerInfo: `Laden Kundeninformationen`,\r\n LOA_ActivatingCustomer: `aktivieren Kunden`,\r\n LOA_Translations: `Laden Übersetzungen`,\r\n LOA_Configuration: `Laden Konfiguration`,\r\n LOA_Availability: `Laden Verfügbarkeit`,\r\n LOA_CreatingReservation: `Erstellen Reservierung`,\r\n LOA_HotelInformation: `Laden Hotelinformationen`,\r\n LOA_Countries: `Laden Länder`,\r\n LOA_PreparingPaymnent: `Vorbereitung Zahlung`,\r\n LOA_ApplyingPromo: `Anwenden von Promotion-Code`,\r\n LOA_Rooms: `Laden Zimmer`,\r\n LOA_Rates: `Loading Preise`,\r\n LOA_LoggingIn: `Einloggen`,\r\n LOA_SendingInformation: `Senden von Informationen`,\r\n\r\n COM_Continue: `Fortsetzen`,\r\n COM_OK: `OK`,\r\n COM_Persons: `Personen`,\r\n COM_Guest_10: `Erwachsene`,\r\n COM_Guest_9: `Teens`,\r\n COM_Guest_7: `Babys`,\r\n COM_Guest_11: `Senioren`,\r\n COM_Guest_8: `Kinder`,\r\n COM_Adult: `Erwachsene`,\r\n COM_Child: `Kind`,\r\n COM_Room: `Zimmer`,\r\n COM_Cabin: `Kabine`,\r\n COM_House: `Haus`,\r\n COM_Unit: `Einheit`,\r\n COM_Arrival: `Ankunft`,\r\n COM_Departure: `Abreise`,\r\n COM_Promocode: `Werbe-Code`,\r\n COM_Rooms: `Zimmer`,\r\n COM_AddOns: `Add-ons`,\r\n COM_TotalGuests: `Gäste insgesamt`,\r\n COM_Price: `Preis`,\r\n COM_TotalPrice: `Gesamtpreis`,\r\n COM_TotalPriceWithTransactionId: `Mit transactionID Insgesamt gezahlt`,\r\n COM_TotalReservedWithTransactionId: `Insgesamt reserviert mit transactionID`,\r\n COM_Close: `Schließen`,\r\n COM_Back: `Zurück`,\r\n COM_Error: `Info`,\r\n COM_Info: `Information`,\r\n COM_Confirm: `Bestätigen`,\r\n COM_Package: `Pakete`,\r\n COM_SoldOutError: `Für diesen Tag sind keine Zimmer oder Pakete verfügbar`,\r\n COM_SearchNew: `Neue Suche`,\r\n COM_TableReservation: `Tischreservierung`,\r\n COM_TableNumberOfPersons: `Anzahl der Personen am Tisch`,\r\n COM_Guests: `Gäste`,\r\n COM_TableChooseProduct: `Datum und Produkt auswählen`,\r\n COM_TablePlaceGuests: `Sie müssen platzieren`,\r\n COM_TableChooseProducts: `Produkt(e) auswählen`,\r\n COM_TableNumberOfGuestsForProduct: `Anzahl der Gäste für dieses Produkt`,\r\n COM_TableBookingFlowAddProduct: `Möchten Sie einen Tisch für Ihren Aufenthalt reservieren?`,\r\n COM_TableIfNotPressContinue: `Andernfalls drücken Sie Weiter`,\r\n COM_AddToBasket: `Anzeige in den Warenkorb`,\r\n COM_AddedToBasket: `In den Warenkorb gelegt`,\r\n COM_Type: `Art`,\r\n COM_SeatingSoldOut: `Momentan nichts verfügbar`,\r\n COM_Main: `Startseite`,\r\n COM_Conference: `Konference`,\r\n COM_Quantity: `Menge`,\r\n\r\n LFO_Email: `E-mail`,\r\n LFO_EmailRequried: `Email ist erforderlich`,\r\n LFO_EmailInvalid: `E-Mail nicht gültig`,\r\n LFO_Password: `Passwort`,\r\n LFO_PasswordRequried: `Passwort erforderlich`,\r\n LFO_ForgotPassword: `Können Sie Ihre Konto nicht angehen`,\r\n LFO_Login: `Einloggen`,\r\n LFO_BackToLogin: `Einloggen`,\r\n LFO_Send: `Senden`,\r\n LFO_MessageSend: `Nachrichten gesendet!`,\r\n LFO_LoginError: `Falsche E-Mail oder Passwort`,\r\n LFO_RecoveryError: `Login-Informationen ungültig`,\r\n\r\n SFO_ChooseHotel: `Unsere Hotels`,\r\n SFO_ChooseHolidayResort: `Unsere Feriensiedlung`,\r\n SFO_ChooseCenter: `Unsere Center`,\r\n SFO_ChooseDepartment: `Abteilung wählen`,\r\n SFO_ParamsHeader: `Datum Wähle`,\r\n SFO_Guests: `Gäste im Zimmer`,\r\n SFO_GuestsCabin: `Gäste im Kabine`,\r\n SFO_GuestsHouse: `Gäste im Haus`,\r\n SFO_GuestsUnit: `Gäste im einheit`,\r\n SFO_AddRoom: `Zimmer hinzufügen`,\r\n SFO_AddCabin: `Kabinen hinzufügen`,\r\n SFO_AddHouse: `Häuser hinzufügen`,\r\n SFO_AddUnit: `einheiten hinzufügen`,\r\n SFO_BookStay: `Aufenthalt`,\r\n SFO_BookEvent: `Event`,\r\n SFO_BookTakeAway: `Wegbringen`,\r\n SFO_BookTableReservation: `Tischreservierung`,\r\n SFO_BookGiftcard: `Geschenkkarte`,\r\n SFO_GiftcardMetaData: `Grunddaten für Ihre Geschenkkarten`,\r\n SFO_ChooseGiftcard: `Wählen Sie eine Geschenkkarte`,\r\n SFO_NumberOfGiftcards: `Wie viele der ausgewählten Geschenkkarten möchten Sie kaufen?`,\r\n SFO_GiftcardAmount: `Menge eingeben`,\r\n SFO_GiftcardEnterDetails: `Geben Sie Details für Ihre Geschenkkarten ein`,\r\n SFO_ChooseGiftcardDescription: `Kaufen Sie eine Geschenkkarte für jemanden den Sie interessieren`,\r\n SFO_GiftcardDetails: `Geschenkkartendetails`,\r\n SFO_GiftcardTo: `Für wen ist die Geschenkkarte (optional)`,\r\n SFO_GiftcardFrom: `Von wen ist die Geschenkkarte (optional)`,\r\n SFO_GiftcardMessage: `Schreiben Sie eine Begrüßung (max. 100 Zeichen) (optional)`,\r\n SFO_BookArrangement: `Anordnung`,\r\n SFO_BookConcert: `Konzert`,\r\n SFO_BookTableArangement: `Tisch / Anordnung`,\r\n SFO_BookTableEvent: `Tabelle / Ereignis`,\r\n SFO_BordTakeAway: `Bord / mitnehmen`,\r\n SFO_BookTicket: `Fahrkarte`,\r\n SFO_BookLecture: `Vorlesung`,\r\n SFO_BookTable: `Einen Tisch reservieren`,\r\n SFO_BookSpa: `Spa`,\r\n SFO_BookExperience: `Lebnis`,\r\n SFO_ChooseMonth: `Wählen Sie Monat`,\r\n SFO_NoRooms: `Für den ausgewählten Zeitraum wurden keine verfügbaren Zimmer gefunden!`,\r\n SFO_MinLOS: `Der ausgewählte Zeitraum erfordert eine Buchung von mindestens`,\r\n SFO_Nights: `nächte`,\r\n SFO_MaxLOS: `Während des ausgewählten Zeitraums ist eine Buchung maximal möglich`,\r\n\r\n CAL_WeekStart: `1`,\r\n CAL_M01: `Januar`,\r\n CAL_M02: `Februar`,\r\n CAL_M03: `März`,\r\n CAL_M04: `April`,\r\n CAL_M05: `Mai`,\r\n CAL_M06: `Juni`,\r\n CAL_M07: `Juli`,\r\n CAL_M08: `August`,\r\n CAL_M09: `September`,\r\n CAL_M10: `Oktober`,\r\n CAL_M11: `November`,\r\n CAL_M12: `Dezember`,\r\n CAL_D0: `Sonntag`,\r\n CAL_D1: `Montag`,\r\n CAL_D2: `Dienstag`,\r\n CAL_D3: `Mittwoch`,\r\n CAL_D4: `Donnerstag`,\r\n CAL_D5: `Freitag`,\r\n CAL_D6: `Samstag`,\r\n CAL_Selected: `Ausgewählt`,\r\n CAL_Occupied: `Geschlossen/Ausverkauft`,\r\n CAL_Arrival: `wegen Ankunft geschlossen`,\r\n CAL_Departure: `wegen Abreise geschlossen`,\r\n CAL_Mon: `M`,\r\n CAL_Tirs: `D`,\r\n CAL_Ons: `M`,\r\n CAL_Tors: `D`,\r\n CAL_Fre: `F`,\r\n CAL_Lor: `S`,\r\n CAL_Sun: `S`,\r\n CAL_Available: `Verfügbar`,\r\n CAL_NotPossible: `Nicht möglich`,\r\n\r\n BIN_ChangeDate: `Datum ändern`,\r\n BIN_ChangeRoom: `Ändern`,\r\n BIN_ChangeAddOns: `Ändern Sie Add-ons`,\r\n BIN_NoAddOns: `Keine Dienste hinzugefügt`,\r\n BIN_AddOns: `Dienstleistungen hinzugefügt`,\r\n BIN_Reservation: `Deine Reservierung`,\r\n BIN_Details: `Grundlegende Details`,\r\n BIN_RoomCount: `Räume`,\r\n BIN_CabinCount: `Kabinen`,\r\n BIN_HouseCount: `Hâuser`,\r\n BIN_UnitCount: `Einheiten`,\r\n BIN_Roomtype: `Zimmertyp`,\r\n BIN_Cabintype: `Kabinentyp`,\r\n BIN_Housetype: `Art eines Hauses`,\r\n BIN_Unittype: `Gerätetyp`,\r\n BIN_Packagetype: `Pakettyp`,\r\n BIN_BasketEmpty: `Der Korb ist leer`,\r\n BIN_BasketGoToCheckout: `Zum Checkout gehen`,\r\n\r\n EXC_EmptyBasket: `Basket must not be empty`,\r\n\r\n SEA_Date: `datum`,\r\n SEA_Time: `Zeit`,\r\n SEA_Quantity: `Anzahl`,\r\n SEA_Skip: `Überspringen`,\r\n SEA_ChooseEvent: `Wähle eine Erfahrung`,\r\n SEA_DescriptionStart: `Wählen`,\r\n SEA_DescriptionEnd: `unten oder Datum im Kalender`,\r\n SEA_SoldOut: `Für den ausgewählten Monat ist alles ausverkauft`,\r\n SEA_SoldOutContinue: `Drücken Sie Weiter um zu überspringen`,\r\n SEA_SeatingStandAloneTitle: ` Wählen Sie ein Datum oder eines der angezeigten aus Optionen`,\r\n SEA_ResetCalendar: `Anzeigen alle`,\r\n\r\n MAT_CALENDAR_Calendar_Label: `S`,\r\n MAT_CALENDAR_Close_Calendar_Label: `S`,\r\n MAT_CALENDAR_End_Date_Label: `S`,\r\n MAT_CALENDAR_Next_Month_Label: `S`,\r\n MAT_CALENDAR_Next_Multi_Year_Label: `S`,\r\n MAT_CALENDAR_Next_Year_Label: `S`,\r\n MAT_CALENDAR_Open_Calendar_Label: `S`,\r\n MAT_CALENDAR_Prev_Month_Label: `S`,\r\n MAT_CALENDAR_Prev_Multi_Year_Label: `S`,\r\n MAT_CALENDAR_Prev_Year_Label: `S`,\r\n MAT_CALENDAR_Start_Date_Label: `S`,\r\n MAT_CALENDAR_Switch_To_Month_View_Label: `S`,\r\n MAT_CALENDAR_Switch_To_Multi_Year_View_Label: `S`,\r\n};\r\n","import { Messages } from './index';\r\n\r\nexport const messages: Messages = {\r\n APA_CompanyLogin: `Company login`,\r\n APA_Logout: `Log out`,\r\n APA_Welcome: `Hello`,\r\n APA_ShowPromo: `Promotion code`,\r\n APA_PromoLabel: `Enter promotion code`,\r\n APA_Promo: `Promotion code`,\r\n APA_PromoSubmit: `Use`,\r\n APA_PromoChange: `change`,\r\n APA_ActivateHead: `Activate your login`,\r\n APA_ActivateDesc: `Type in password to activate login for`,\r\n APA_Password: `Password`,\r\n APA_ConfirmPassword: `Confirm Password`,\r\n APA_PasswordHasUpper: `Password must contain at least one uppercase letter (A-Z)`,\r\n APA_PasswordHasLower: `Password must contain at least one lowercase letter (a-z)`,\r\n APA_PasswordHasNumber: `Password must contain at least one number (0-9)`,\r\n APA_PasswordLength8: `Password must contain at least 8 characters`,\r\n APA_ConfirmPasswordEqualTo: `Passwords not match`,\r\n APA_Activate: `Activate`,\r\n APA_CustomerNotFound: `Sorry we can not find customer record in out database`,\r\n APA_ResetBasket: `Everything will be removed from basket. Are you sure?`,\r\n APA_Address: `Address`,\r\n APA_Contact: `Contact`,\r\n APA_VatNumber: `VAT:`,\r\n APA_PromoMessageStart: `Promotioncode`,\r\n APA_ValidTime: `Validity`,\r\n APA_PromoMessageEnd: `Promotioncode is valid on products marked with the code`,\r\n APA_AQCDecription: `Age description`,\r\n APA_Year: `years`,\r\n APA_Book: `Book`,\r\n\r\n CPA_NothingAvailable_EmptyText: `Please select a new date below, or go back and change your information from the first step`,\r\n CPA_NothingAvailable: `There are no available rooms which satisfy your criteria`,\r\n CPA_SoldOut: `Sold out`,\r\n CPA_CustomerInvalid: `Customer is not valid`,\r\n CPA_PromoInvalid: `The promotion code you entered is invalid.`,\r\n CPA_PromoBetween: `The promotion code you entered is only valid if your stay period is between:`,\r\n\r\n RPA_More: `Show more`,\r\n RPA_Select: `Select`,\r\n RPA_Selected: `Selected`,\r\n RPA_From: `Starting from`,\r\n RPA_Image: `No image`,\r\n RPA_Description: `Description`,\r\n RPA_ChooseRoom: `Choose room`,\r\n RPA_ChoosePackage: `Choose Package`,\r\n RPA_ChooseCabin: `Choose cabin`,\r\n RPA_ChooseHouse: `Choose house`,\r\n RPA_ChooseUnit: `Choose unit`,\r\n RPA_BackRate: `Choose another package`,\r\n RPA_MaxPersons: `Maximum number of people`,\r\n RPA_ChooseYourRoom: `Choose room`,\r\n RPA_ChooseYourCabin: `Choose cabin`,\r\n RPA_ChooseYourHouse: `Choose house`,\r\n RPA_ChooseYourUnit: `Choose unit`,\r\n RPA_ChooseYourPackage: `Choose package`,\r\n\r\n APA_Services: `Services`,\r\n APA_Add: `Add`,\r\n APA_Added: `Added`,\r\n APA_Remove: `Remove`,\r\n APA_ContentDialog: `Choose the number of guests and days you want the selected service. Between the dates`,\r\n APA_ChooseYourAddOns: `Choose add-ons`,\r\n APA_TotalPrice: `Total cost`,\r\n APA_TotalInBasket: `pc, total`,\r\n APA_TotalOf: `Choose quantity of`,\r\n\r\n CUP_Header: `Buyers informations`,\r\n CUP_Accept: `Accept`,\r\n CUP_FName: `Name`,\r\n CUP_FNameReq: `First name is required`,\r\n CUP_FPhoneReq: `Phone name is required`,\r\n CUP_LName: `Surname`,\r\n CUP_LNameReq: `Last name is required`,\r\n CUP_Address: `Address`,\r\n CUP_AddressReq: `Address is required`,\r\n CUP_ZipCode: `Postal code`,\r\n CUP_ZipCodeReq: `Postal code is required`,\r\n CUP_City: `City`,\r\n CUP_CityReq: `City is required`,\r\n CUP_Contry: `Country`,\r\n CUP_ContryReq: `Country is required`,\r\n CUP_Phone: `Mobile phone number`,\r\n CUP_PhoneReq: `Mobile phone is required`,\r\n CUP_Email: `Email`,\r\n CUP_EmailRepeat: `Repeat Email`,\r\n CUP_EmailReq: `Email is required`,\r\n CUP_EmailInvalid: `Email is not valid`,\r\n CUP_Comment: `Comment`,\r\n CUP_NeedSubscribe: `Subscribe to newsletter`,\r\n CUP_AcceptTerms: `Terms and Conditions`,\r\n CUP_BookNow: `Book now!`,\r\n CUP_CancelPolicyHeader: `Cancellation insurance`,\r\n CUP_CancelPolicyDesc: `You have the option to cancel your stay if you can't make it. See additional information regarding cancellation insurance in our booking conditions.`,\r\n CUP_CancelPolicyLabel: `Yes, I would like to buy cancellation insurance for`,\r\n CUP_GuestInfo: `Guest information`,\r\n CUP_BookingOverview: `Booking overview`,\r\n CUP_PayWithGiftcard: `To pay with gift card`,\r\n CUP_PayWithGiftcardClick: `Click here`,\r\n CUP_PayWithGiftcardDescription: `Enter the code from your giftcard`,\r\n CUP_PayWithGiftcardError: `Gift card is not active or dosen't exists.`,\r\n CUP_PayWithGiftcardStatus: `Gift card active`,\r\n CUP_PayWithGiftcardDiscount: `Gift card amount`,\r\n CUP_PayWithGiftcardHeader: `Gift card`,\r\n CUP_PayWithGiftcardInformation: `Want to use a gift card?`,\r\n CUP_PayWithGiftcardPlaceholder: `Gift card code`,\r\n CUP_PayWithGiftcardRedeem: `Use`,\r\n CUP_BookingOverviewToPay: `To pay`,\r\n\r\n PAL_GoToPayment: `Go to payment`,\r\n PAL_PaymentComplete: `The link has expired. Please contact`,\r\n PAL_PaymentNotAvailable: `Payment on this reservation is not available`,\r\n\r\n PAR_Payment: `Payment`,\r\n PAR_SeekAuthorization: `Please fill in your credit card information below in order to confirm your payment and complete your reservation`,\r\n PAR_TotalLabel: `Price for your order`,\r\n PAR_TotalPayLabel: `Price to pay`,\r\n PAR_OBSLabel: `IMPORTANT: Do not close this window until the receipt page appears, where you can see your order / reservation number!`,\r\n PAR_OBSLabelGiftcard: `IMPORTANT: Stay on the page until receipt appears with a order number!`,\r\n PAR_FailedToPay: `Failed to pay. Check your card number.`,\r\n PAR_CardInvalid: `Card number is not valid`,\r\n PAR_CardUnknown: `Card type in not known`,\r\n PAR_CardMonthInvalid: `Month is invalid`,\r\n PAR_CardYearInvalid: `Year is invalid`,\r\n PAR_CardCVCInvalid: `CVV code is invalid`,\r\n PAR_FieldRequired: `This field is required`,\r\n PAR_Cancel: `Cancel`,\r\n PAR_Pay: `Pay`,\r\n PAR_PaymentMethod: `Payment Methods`,\r\n PAR_Cardnumber: `Card number`,\r\n PAR_MonthPlaceholder: `MM`,\r\n PAR_YearPlaceholder: `YY`,\r\n\r\n PFP_Header: `Hoof! Unfortunately an error has occurred`,\r\n PFP_Info: `And your order has NOT gone through. Please try again by clicking the button below. No money has been withdrawn from your account.`,\r\n PFP_TryAgain: `Try again`,\r\n\r\n REP_Header: `Thank you for your order,`,\r\n REP_Comment: `below you will find your receipt for your order.`,\r\n REP_DateRooms: `Travel date`,\r\n REP_Return: `Return to website`,\r\n REP_OrderId: `Your Order Number`,\r\n REP_ReservationId: `Order number`,\r\n REP_CustomerInfo: `Personal information`,\r\n\r\n REP_Name: `Name`,\r\n REP_PostCity: `ZipCode & City`,\r\n REP_Phone: `Phone`,\r\n REP_Address: `Address`,\r\n REP_Country: `Country`,\r\n REP_Email: `Email`,\r\n REP_Thanks: `Thank you for your order`,\r\n REP_ThanksInfo: `You will receive a confirmation shortly by mail.`,\r\n REP_ThanksPayment: `Your payment is complete`,\r\n\r\n LOA_Addons: `Loading add-ons`,\r\n LOA_CustomerInfo: `Loading customer information`,\r\n LOA_ActivatingCustomer: `Activating customer`,\r\n LOA_Translations: `Loading translations`,\r\n LOA_Configuration: `Loading configuration`,\r\n LOA_Availability: `Loading availability`,\r\n LOA_CreatingReservation: `Creating reservation`,\r\n LOA_HotelInformation: `Loading hotel information`,\r\n LOA_Countries: `Loading countries`,\r\n LOA_PreparingPaymnent: `Preparing payment`,\r\n LOA_ApplyingPromo: `Applying promotion code`,\r\n LOA_Rooms: `Loading rooms`,\r\n LOA_Rates: `Loading rates`,\r\n LOA_LoggingIn: `Logging in`,\r\n LOA_SendingInformation: `Sending information`,\r\n\r\n COM_Continue: `Continue`,\r\n COM_OK: `OK`,\r\n COM_Persons: `Persons`,\r\n COM_Guest_10: `Adults`,\r\n COM_Guest_9: `Teenagers`,\r\n COM_Guest_7: `Infants`,\r\n COM_Guest_11: `Seniors`,\r\n COM_Guest_8: `Children`,\r\n COM_Adult: `Adult`,\r\n COM_Child: `Child`,\r\n COM_Room: `Room`,\r\n COM_Cabin: `Cabin`,\r\n COM_House: `House`,\r\n COM_Unit: `Unit`,\r\n COM_Arrival: `Arrival`,\r\n COM_Departure: `Departure`,\r\n COM_Promocode: `Promocode`,\r\n COM_Rooms: `Rooms`,\r\n COM_AddOns: `Add-ons`,\r\n COM_TotalGuests: `Total guests`,\r\n COM_Price: `Price`,\r\n COM_TotalPrice: `Total price`,\r\n COM_TotalPriceWithTransactionId: `Total paid with transactionID`,\r\n COM_TotalReservedWithTransactionId: `Total reserved with transactionID`,\r\n COM_Close: `Close`,\r\n COM_Back: `Back`,\r\n COM_Error: `Info`,\r\n COM_Info: `Information`,\r\n COM_Confirm: `Confirm`,\r\n COM_Package: `Package`,\r\n COM_SoldOutError: `There is no available rooms or packages on this date`,\r\n COM_SearchNew: `New Search`,\r\n COM_TableReservation: `Table Reservation`,\r\n COM_TableNumberOfPersons: `Number of people at the table`,\r\n COM_Guests: `Guests`,\r\n COM_TableChooseProduct: `Choose date and products`,\r\n COM_TablePlaceGuests: `You need to place`,\r\n COM_TableChooseProducts: `Choose product(s)`,\r\n COM_TableNumberOfGuestsForProduct: `Number of guests for this products`,\r\n COM_TableBookingFlowAddProduct: `Do you wish to add a table reservation to your stay?`,\r\n COM_TableIfNotPressContinue: `If not press continue`,\r\n COM_AddToBasket: `Add to basket`,\r\n COM_AddedToBasket: `Added to basket`,\r\n COM_Type: `Type`,\r\n COM_SeatingSoldOut: `Nothing available at the moment`,\r\n COM_Main: `Home`,\r\n COM_Conference: `Conference`,\r\n COM_Quantity: `Quantity`,\r\n\r\n LFO_Email: `Email`,\r\n LFO_EmailRequried: `Email is required`,\r\n LFO_EmailInvalid: `Email is not valid`,\r\n LFO_Password: `Password`,\r\n LFO_PasswordRequried: `Password required`,\r\n LFO_ForgotPassword: `Can't access your account?`,\r\n LFO_Login: `Log in`,\r\n LFO_BackToLogin: `Back to Sign in`,\r\n LFO_Send: `Send`,\r\n LFO_MessageSend: `Message send!`,\r\n LFO_LoginError: `Wrong email or password`,\r\n LFO_RecoveryError: `Login information invalid`,\r\n\r\n SFO_ChooseHotel: `Our hotels`,\r\n SFO_ChooseHolidayResort: `Our Holiday Resorts`,\r\n SFO_ChooseCenter: `Our Centers`,\r\n SFO_ChooseDepartment: `Choose Department`,\r\n SFO_ParamsHeader: `Select date`,\r\n SFO_Guests: `Guests in room`,\r\n SFO_GuestsCabin: `Guests in Cabin`,\r\n SFO_GuestsHouse: `Guests in House`,\r\n SFO_GuestsUnit: `Guests in Unit`,\r\n SFO_AddRoom: `More rooms`,\r\n SFO_AddCabin: `More cabins`,\r\n SFO_AddHouse: `More houses`,\r\n SFO_AddUnit: `More units`,\r\n SFO_BookStay: `stay`,\r\n SFO_BookEvent: `Event`,\r\n SFO_BookTakeAway: `Take Away`,\r\n SFO_BookTableReservation: `Table Reservation`,\r\n SFO_BookGiftcard: `Giftcard`,\r\n SFO_GiftcardMetaData: `Meta data for your giftcard`,\r\n SFO_ChooseGiftcard: `Choose Giftcard`,\r\n SFO_NumberOfGiftcards: `How many of the selected giftcard do you want to buy?`,\r\n SFO_GiftcardAmount: `Enter amount`,\r\n SFO_GiftcardEnterDetails: `Enter details for you giftcards`,\r\n SFO_ChooseGiftcardDescription: `Buy a giftcard to someone you care about`,\r\n SFO_GiftcardDetails: `Giftcard details`,\r\n SFO_GiftcardTo: `Who is the giftcard for (optional)`,\r\n SFO_GiftcardFrom: `Who is the giftcard from (optional)`,\r\n SFO_GiftcardMessage: `Write a greeting (Max 100 characters) (optional)`,\r\n SFO_BookArrangement: `Arrangement`,\r\n SFO_BookConcert: `Concert`,\r\n SFO_BookTableArangement: `Table/arrangement`,\r\n SFO_BookTableEvent: `Table/Event`,\r\n SFO_BordTakeAway: `Table/Take Away`,\r\n SFO_BookTicket: `Ticket`,\r\n SFO_BookLecture: `Lecture`,\r\n SFO_BookTable: `Book Table`,\r\n SFO_BookSpa: `Spa`,\r\n SFO_BookExperience: `Experience`,\r\n SFO_ChooseMonth: `Choose Month`,\r\n SFO_NoRooms: `No rooms were found in the selected timespan!`,\r\n SFO_MinLOS: `The selected period requires a booking of a minimum of`,\r\n SFO_Nights: `nights`,\r\n SFO_MaxLOS: `During the selected period it is possible to book a maximum of`,\r\n\r\n CAL_WeekStart: `0`,\r\n CAL_M01: `January`,\r\n CAL_M02: `February`,\r\n CAL_M03: `March`,\r\n CAL_M04: `April`,\r\n CAL_M05: `May`,\r\n CAL_M06: `June`,\r\n CAL_M07: `July`,\r\n CAL_M08: `August`,\r\n CAL_M09: `September`,\r\n CAL_M10: `October`,\r\n CAL_M11: `November`,\r\n CAL_M12: `December`,\r\n CAL_D0: `Sunday`,\r\n CAL_D1: `Monday`,\r\n CAL_D2: `Tuesday`,\r\n CAL_D3: `Wednesday`,\r\n CAL_D4: `Thursday`,\r\n CAL_D5: `Friday`,\r\n CAL_D6: `Saturday`,\r\n CAL_Selected: `Selected`,\r\n CAL_Occupied: `Closed/Sold out`,\r\n CAL_Arrival: `Closed for arrival`,\r\n CAL_Departure: `Closed for departure`,\r\n CAL_Mon: `M`,\r\n CAL_Tirs: `T`,\r\n CAL_Ons: `W`,\r\n CAL_Tors: `T`,\r\n CAL_Fre: `F`,\r\n CAL_Lor: `S`,\r\n CAL_Sun: `S`,\r\n CAL_Available: `Available`,\r\n CAL_NotPossible: `Not possible`,\r\n\r\n BIN_ChangeDate: `Change date`,\r\n BIN_ChangeRoom: `Change`,\r\n BIN_ChangeAddOns: `Change add-ons`,\r\n BIN_NoAddOns: `No services added`,\r\n BIN_AddOns: `Services added`,\r\n BIN_Reservation: `Your Reservation`,\r\n BIN_Details: `Basic Details`,\r\n BIN_RoomCount: `Rooms`,\r\n BIN_CabinCount: `Cabins`,\r\n BIN_HouseCount: `Houses`,\r\n BIN_UnitCount: `Units`,\r\n BIN_Roomtype: `Room type`,\r\n BIN_Cabintype: `Cabin type`,\r\n BIN_Housetype: `House type`,\r\n BIN_Unittype: `Unit type`,\r\n BIN_Packagetype: `Package type`,\r\n BIN_BasketEmpty: `Basket is empty`,\r\n BIN_BasketGoToCheckout: `Go to checkout`,\r\n\r\n EXC_EmptyBasket: `Basket must not be empty`,\r\n\r\n SEA_Date: `Date`,\r\n SEA_Time: `Time`,\r\n SEA_Quantity: `Quantity`,\r\n SEA_Skip: `Skip`,\r\n SEA_ChooseEvent: `Choose Event`,\r\n SEA_DescriptionStart: `Select`,\r\n SEA_DescriptionEnd: `below or date in the calendar`,\r\n SEA_SoldOut: `Everything is sold out for the choosen month`,\r\n SEA_SoldOutContinue: `Click Continue to jump to the next step`,\r\n SEA_SeatingStandAloneTitle: `Select date of choose one of the displayed options`,\r\n SEA_ResetCalendar: `Show all`,\r\n\r\n MAT_CALENDAR_Calendar_Label: `S`,\r\n MAT_CALENDAR_Close_Calendar_Label: `S`,\r\n MAT_CALENDAR_End_Date_Label: `S`,\r\n MAT_CALENDAR_Next_Month_Label: `S`,\r\n MAT_CALENDAR_Next_Multi_Year_Label: `S`,\r\n MAT_CALENDAR_Next_Year_Label: `S`,\r\n MAT_CALENDAR_Open_Calendar_Label: `S`,\r\n MAT_CALENDAR_Prev_Month_Label: `S`,\r\n MAT_CALENDAR_Prev_Multi_Year_Label: `S`,\r\n MAT_CALENDAR_Prev_Year_Label: `S`,\r\n MAT_CALENDAR_Start_Date_Label: `S`,\r\n MAT_CALENDAR_Switch_To_Month_View_Label: `S`,\r\n MAT_CALENDAR_Switch_To_Multi_Year_View_Label: `S`,\r\n};\r\n","import { Messages } from './index';\r\n\r\nexport const messages: Messages = {\r\n APA_CompanyLogin: `Innritan til fyritøkur`,\r\n APA_Logout: `Log ud`,\r\n APA_Welcome: `Vælkomin`,\r\n APA_ShowPromo: `Avsláttarfrámerki`,\r\n APA_PromoLabel: `Upplýs avsláttarkotu`,\r\n APA_Promo: `Avsláttarkotan`,\r\n APA_PromoSubmit: `Nýt`,\r\n APA_PromoChange: `Rætta`,\r\n APA_ActivateHead: `Aktiver dit login`,\r\n APA_ActivateDesc: `Angiv adgangskode for at aktivere login for`,\r\n APA_Password: `Adgangskode`,\r\n APA_ConfirmPassword: `Váttað passorð`,\r\n APA_PasswordHasUpper: `Adgangskode skal indeholde mindst et stort bogstav (A-Z)`,\r\n APA_PasswordHasLower: `Adgangskode skal indeholde mindst et lille bogstav (a-z)`,\r\n APA_PasswordHasNumber: `Adgangskode skal indeholde mindst et tal (0-9)`,\r\n APA_PasswordLength8: `Adgangskode skal indeholde mindst 8 karakterer`,\r\n APA_ConfirmPasswordEqualTo: `Skeivt loyniorð`,\r\n APA_Activate: `Virkja`,\r\n APA_CustomerNotFound: `Kundin er ikki funnin`,\r\n APA_ResetBasket: `Alt vil blive fjernet fra kurven. Er du sikker?`,\r\n APA_Address: `Bústaður`,\r\n APA_Contact: `Samband`,\r\n APA_VatNumber: `CVR:`,\r\n APA_PromoMessageStart: `Frámerki`,\r\n APA_ValidTime: `Galdandi tíðarskeið`,\r\n APA_PromoMessageEnd: `Frámerki er galdandi á teimum vørum ið eru merktar við prosentvísum avslátturi`,\r\n APA_AQCDecription: `Aldersbeskrivelse`,\r\n APA_Year: `ár`,\r\n APA_Book: `Book`,\r\n\r\n CPA_NothingAvailable_EmptyText: `Vinaliga vel ein annan dag,`,\r\n CPA_NothingAvailable: `Der er ingen ledige værelser, der opfylder dine kriterier`,\r\n CPA_SoldOut: `Útselt`,\r\n CPA_CustomerInvalid: `Ukendt kundeprofil`,\r\n CPA_PromoInvalid: `Frámerkið er óvirki`,\r\n CPA_PromoBetween: `Den indtastede rabatkode er kun gyldig hvis opholdet er i perioden:`,\r\n\r\n RPA_More: `Sí meira`,\r\n RPA_Select: `Vel`,\r\n RPA_Selected: `Valt`,\r\n RPA_From: `Úr`,\r\n RPA_Image: `No image`,\r\n RPA_Description: `Beskrivelse`,\r\n RPA_ChooseRoom: `Vel Kamar`,\r\n RPA_ChoosePackage: `Vel bílegging`,\r\n RPA_ChooseCabin: `Vælg værelse`,\r\n RPA_ChooseHouse: `Vælg værelse`,\r\n RPA_ChooseUnit: `Vælg værelse`,\r\n RPA_BackRate: `Vælg en anden pakke`,\r\n RPA_MaxPersons: `Max gestir á kamari`,\r\n RPA_ChooseYourRoom: `Vel Kamar`,\r\n RPA_ChooseYourCabin: `Vælg værelse`,\r\n RPA_ChooseYourHouse: `Vælg Værelse`,\r\n RPA_ChooseYourUnit: `Vælg værelse`,\r\n RPA_ChooseYourPackage: `Vel bílegging`,\r\n\r\n APA_Services: `Tænastur`,\r\n APA_Add: `LEGG AFTURAT`,\r\n APA_Added: `Tænastur lagdar afturat`,\r\n APA_Remove: `Tak burtur`,\r\n APA_ContentDialog: `Vel tal av persónum og døgum tú ynskir nevndu tænastu dagarnar millum`,\r\n APA_ChooseYourAddOns: `Vel eyka keyp`,\r\n APA_TotalPrice: `kostnaður íalt`,\r\n APA_TotalInBasket: `kpl, yhteensä`,\r\n APA_TotalOf: `Vel stk. á`,\r\n\r\n CUP_Header: `Gestur upplýsing`,\r\n CUP_Accept: `Góðkenn`,\r\n CUP_FName: `Fornavn`,\r\n CUP_FNameReq: `Fornavn skal upplýsast`,\r\n CUP_FPhoneReq: `Mobil skal upplýsast`,\r\n CUP_LName: `Eftirnavn`,\r\n CUP_LNameReq: `Eftirnavn er kravt`,\r\n CUP_Address: `Bústaður`,\r\n CUP_AddressReq: `Adressa skal upplýsast`,\r\n CUP_ZipCode: `Postnummar`,\r\n CUP_ZipCodeReq: `Postnummar skal upplýsast`,\r\n CUP_City: `Bygd`,\r\n CUP_CityReq: `Býur skal upplýsast`,\r\n CUP_Contry: `Land`,\r\n CUP_ContryReq: `Land er påkrævet`,\r\n CUP_Phone: `Fartelefon nummar`,\r\n CUP_PhoneReq: `Fartelefon skal upplýsast`,\r\n CUP_Email: `Teldupostur`,\r\n CUP_EmailRepeat: `Teldupostur`,\r\n CUP_EmailReq: `Teldupostur skal upplýsast`,\r\n CUP_EmailInvalid: `Teldupostur ikki rættur`,\r\n CUP_Comment: `Viðmerkingar`,\r\n CUP_NeedSubscribe: `Eg vil fegin fáa tíðindi við telduposti`,\r\n CUP_AcceptTerms: `Eg havi lisið og góðkenni treytirnar`,\r\n CUP_BookNow: `Book`,\r\n CUP_CancelPolicyHeader: `Ógildingartrygging`,\r\n CUP_CancelPolicyDesc: `Tú hevur møguleika at ógilda bíleggingina um tú ikki fært komið. Fleiri upplýsningar viðv. ógildingartrygging eru í bíleggingartreytunum.`,\r\n CUP_CancelPolicyLabel: `Ja, eg vil fegin keypa ógildingartrygging fyri`,\r\n CUP_GuestInfo: `Kunning um gest`,\r\n CUP_BookingOverview: `Bíleggingar yvirlit`,\r\n CUP_PayWithGiftcard: `Fyri at gjalda við gávukorti`,\r\n CUP_PayWithGiftcardClick: `Trýst her`,\r\n CUP_PayWithGiftcardDescription: `Rita inn gávukortnummar`,\r\n CUP_PayWithGiftcardError: `Gavekort er ikke aktivt eller kunne ikke findes i systemet.`,\r\n CUP_PayWithGiftcardStatus: `Gavekort aktivt`,\r\n CUP_PayWithGiftcardDiscount: `Gavekort beløb`,\r\n CUP_PayWithGiftcardHeader: `Gávukort`,\r\n CUP_PayWithGiftcardInformation: `Ynskir tü at nyta Gávukort`,\r\n CUP_PayWithGiftcardPlaceholder: `Gavekortskode`,\r\n CUP_PayWithGiftcardRedeem: `Indløs`,\r\n CUP_BookingOverviewToPay: `At betale`,\r\n\r\n PAL_GoToPayment: `Go to payment`,\r\n PAL_PaymentComplete: `Leinkjan er útgingin. Vinarliga set teg í samband við`,\r\n PAL_PaymentNotAvailable: `Payment on this reservation is not available`,\r\n\r\n PAR_Payment: `Gjalding`,\r\n PAR_SeekAuthorization: `Tínir kreditkortupplýsingar verða brúktir til gjald, ella verða settir sum trygd fyri keypið.`,\r\n PAR_TotalLabel: `Samlaður kostnaður`,\r\n PAR_TotalPayLabel: `Kostnaður at gjalda`,\r\n PAR_OBSLabel: `OBS: bliv på siden indtil kvitteringsside vises med et reservationsnummer`,\r\n PAR_OBSLabelGiftcard: `OBS: bliv på siden indtil kvitteringsside vises med et ordrenummer`,\r\n PAR_FailedToPay: `Villa við gjalding. Vinaliga kanna kortnummarið.`,\r\n PAR_CardInvalid: `Kortnummarið er ógildigt`,\r\n PAR_CardUnknown: `Ókent slag av korti`,\r\n PAR_CardMonthInvalid: `Mánaðurin er ógildigur`,\r\n PAR_CardYearInvalid: `Árið er ógildigt`,\r\n PAR_CardCVCInvalid: `CVV-kotan er ógildig`,\r\n PAR_FieldRequired: `Hesin rúturin er kravdur`,\r\n PAR_Cancel: `Ógilda`,\r\n PAR_Pay: `Gjald`,\r\n PAR_PaymentMethod: `Payment Methods`,\r\n PAR_Cardnumber: `Kortnummer`,\r\n PAR_MonthPlaceholder: `MM`,\r\n PAR_YearPlaceholder: `ÅÅ`,\r\n\r\n PFP_Header: `Ups! ein villa er íkomin`,\r\n PFP_Info: `Bíleggingin er ikki gjøgnumførd. Vinaliga royn aftur við at trýsta á knøttin niðanfyri. Eingin pengar eru tiknir av kortinum.`,\r\n PFP_TryAgain: `Royn aftur`,\r\n\r\n REP_Header: `Takk fyri bíleggingina,`,\r\n REP_Comment: `herunder finder du din kvittering for din ordre.`,\r\n REP_DateRooms: `Ferðadagar`,\r\n REP_Return: `Aftur til heimasíðuna`,\r\n REP_OrderId: `Bíleggingarnummar`,\r\n REP_ReservationId: `Bíleggingarnummar`,\r\n REP_CustomerInfo: `Personlige oplysninger`,\r\n\r\n REP_Name: `Navn`,\r\n REP_PostCity: `Postnr & By`,\r\n REP_Phone: `Telefon`,\r\n REP_Address: `Bústaður`,\r\n REP_Country: `Land`,\r\n REP_Email: `Email`,\r\n REP_Thanks: `Takk fyri bíleggingina`,\r\n REP_ThanksInfo: `Ein váttan verður send til tín við telduposti`,\r\n REP_ThanksPayment: `Your payment is complete`,\r\n\r\n LOA_Addons: `Henter ekstra ydelser`,\r\n LOA_CustomerInfo: `Henter kunde informationer`,\r\n LOA_ActivatingCustomer: `Aktiver kunde`,\r\n LOA_Translations: `Henter oversættelser`,\r\n LOA_Configuration: `Indlæser konfiguration`,\r\n LOA_Availability: `Henter ledighed`,\r\n LOA_CreatingReservation: `Opretter reservation`,\r\n LOA_HotelInformation: `Indlæser hotel information`,\r\n LOA_Countries: `Henter lande`,\r\n LOA_PreparingPaymnent: `Forbereder betaling`,\r\n LOA_ApplyingPromo: `Indlæser rabatkode`,\r\n LOA_Rooms: `Indlæser værelser`,\r\n LOA_Rates: `Indlæser priser`,\r\n LOA_LoggingIn: `Logger ind`,\r\n LOA_SendingInformation: `Sender information`,\r\n\r\n COM_Continue: `Víðari`,\r\n COM_OK: `OK`,\r\n COM_Persons: `Personer`,\r\n COM_Guest_10: `vaksin`,\r\n COM_Guest_9: `Tannáringur`,\r\n COM_Guest_7: `Pinkubarn`,\r\n COM_Guest_11: `Eldri fólk`,\r\n COM_Guest_8: `Børn`,\r\n COM_Adult: `vaksin`,\r\n COM_Child: `Barn`,\r\n COM_Room: `Kamar`,\r\n COM_Cabin: `Smátta`,\r\n COM_House: `Hús`,\r\n COM_Unit: `Eind`,\r\n COM_Arrival: `Koma`,\r\n COM_Departure: `Fráferð`,\r\n COM_Promocode: `Avsláttarkotan`,\r\n COM_Rooms: `Kømur`,\r\n COM_AddOns: `Tænastur`,\r\n COM_TotalGuests: `Tal av gestum`,\r\n COM_Price: `Prísur`,\r\n COM_TotalPrice: `Samlaður prísur`,\r\n COM_TotalPriceWithTransactionId: `I alt betalt med transaktionsnr.`,\r\n COM_TotalReservedWithTransactionId: `I alt er reserveret med transactionId`,\r\n COM_Close: `Lat aftur`,\r\n COM_Back: `Aftur`,\r\n COM_Error: `Info`,\r\n COM_Info: `Kunning`,\r\n COM_Confirm: `vinarliga vátta`,\r\n COM_Package: `Pakki`,\r\n COM_SoldOutError: `Der er ikke nogle ledige værelser eller pakker på denne dag`,\r\n COM_SearchNew: `Ny søgning`,\r\n COM_TableReservation: `BorðBílegging`,\r\n COM_TableNumberOfPersons: `Tal av gestum við borðið`,\r\n COM_Guests: `Gestir`,\r\n COM_TableChooseProduct: `Vel dato og vøru`,\r\n COM_TablePlaceGuests: `Tær manglar at`,\r\n COM_TableChooseProducts: `Vel vøru(r)`,\r\n COM_TableNumberOfGuestsForProduct: `Tal av gestum til hesa vøru`,\r\n COM_TableBookingFlowAddProduct: `Ynskir tú at gera eina borðbílegging?`,\r\n COM_TableIfNotPressContinue: `Um ikki so trýst á víðari`,\r\n COM_AddToBasket: `Legg í kurvina`,\r\n COM_AddedToBasket: `Lagt í kurvina`,\r\n COM_Type: `Type`,\r\n COM_SeatingSoldOut: `Nothing available at the moment`,\r\n COM_Main: `Home`,\r\n COM_Conference: `Konference`,\r\n COM_Quantity: `Stk.`,\r\n\r\n LFO_Email: `Teldupostur`,\r\n LFO_EmailRequried: `Upplýs teldupost`,\r\n LFO_EmailInvalid: `Teldupostur ikki rættur`,\r\n LFO_Password: `Loyniorð`,\r\n LFO_PasswordRequried: `Upplýs loyniorð`,\r\n LFO_ForgotPassword: `Fæst ikki atgongd til kontuna?`,\r\n LFO_Login: `Rita inn`,\r\n LFO_BackToLogin: `Aftur til innritan`,\r\n LFO_Send: `Send`,\r\n LFO_MessageSend: `Boðið er sent!`,\r\n LFO_LoginError: `Skeivur teldupostur ella skeivt loyniorð`,\r\n LFO_RecoveryError: `Loginoplysninger ugyldige`,\r\n\r\n SFO_ChooseHotel: `Okkara hotel`,\r\n SFO_ChooseHolidayResort: `Frítíðardepil`,\r\n SFO_ChooseCenter: `Depil`,\r\n SFO_ChooseDepartment: `Deild`,\r\n SFO_ParamsHeader: `Vel ferðadagar`,\r\n SFO_Guests: `Gestir á kamari`,\r\n SFO_GuestsCabin: `Gestir á kamari`,\r\n SFO_GuestsHouse: `Gestir á kamari`,\r\n SFO_GuestsUnit: `Gestir á kamari`,\r\n SFO_AddRoom: `Legg kamar afturat`,\r\n SFO_AddCabin: `Legg kamar afturat`,\r\n SFO_AddHouse: `Legg kamar afturat`,\r\n SFO_AddUnit: `Legg kamar afturat`,\r\n SFO_BookStay: `uppihald`,\r\n SFO_BookEvent: `Event`,\r\n SFO_BookTakeAway: `ÚtVið`,\r\n SFO_BookTableReservation: `Borðbílegging`,\r\n SFO_BookGiftcard: `Gávukort`,\r\n SFO_GiftcardMetaData: `Kunning um tíni gávukort`,\r\n SFO_ChooseGiftcard: `Vel gávukort`,\r\n SFO_NumberOfGiftcards: `Hvussu mong gávukort ynskir tú at keypa?`,\r\n SFO_GiftcardAmount: `Tasta inn upphædd`,\r\n SFO_GiftcardEnterDetails: `Nágreinilig kunning um tíni gávukort`,\r\n SFO_ChooseGiftcardDescription: `Keyp eitt gávukort til onkran tú hevur kæran`,\r\n SFO_GiftcardDetails: `Kunning um gávukort`,\r\n SFO_GiftcardTo: `Hvønn er gávukortið til (valfrítt)`,\r\n SFO_GiftcardFrom: `Hvørjum er gávukortið frá (valfrítt)`,\r\n SFO_GiftcardMessage: `Skriva eina heilsan (í mesta lagi 100 tekin) (valfrítt)`,\r\n SFO_BookArrangement: `Tiltak`,\r\n SFO_BookConcert: `Konsert`,\r\n SFO_BookTableArangement: `BorðTiltak`,\r\n SFO_BookTableEvent: `BorðTiltak`,\r\n SFO_BordTakeAway: `BorðÚtVið`,\r\n SFO_BookTicket: `Atgongumerki`,\r\n SFO_BookLecture: `Fyrilestur`,\r\n SFO_BookTable: `Borð`,\r\n SFO_BookSpa: `Kurstað`,\r\n SFO_BookExperience: `Uppliving`,\r\n SFO_ChooseMonth: `Vel Måned`,\r\n SFO_NoRooms: `Eingi kømur eru tøk í valda tíðarskeiðnum`,\r\n SFO_MinLOS: `Den valgte periode kræver booking af minimum`,\r\n SFO_Nights: `nætter`,\r\n SFO_MaxLOS: `I den valgte periode er det maksimalt muligt at booke`,\r\n\r\n CAL_WeekStart: `1`,\r\n CAL_M01: `Januar`,\r\n CAL_M02: `Februar`,\r\n CAL_M03: `Mars`,\r\n CAL_M04: `April`,\r\n CAL_M05: `Mai`,\r\n CAL_M06: `Juni`,\r\n CAL_M07: `Juli`,\r\n CAL_M08: `August`,\r\n CAL_M09: `September`,\r\n CAL_M10: `Oktober`,\r\n CAL_M11: `November`,\r\n CAL_M12: `Desember`,\r\n CAL_D0: `Sunnudagur`,\r\n CAL_D1: `Mánadagur`,\r\n CAL_D2: `Týsdagur`,\r\n CAL_D3: `Mikudagur`,\r\n CAL_D4: `Hósdagur`,\r\n CAL_D5: `Fríggjadagur`,\r\n CAL_D6: `Leygardagur`,\r\n CAL_Selected: `Valgt`,\r\n CAL_Occupied: `Stongt/Útselt`,\r\n CAL_Arrival: `Ongin koma`,\r\n CAL_Departure: `Ongin fráferð`,\r\n CAL_Mon: `M`,\r\n CAL_Tirs: `T`,\r\n CAL_Ons: `O`,\r\n CAL_Tors: `T`,\r\n CAL_Fre: `F`,\r\n CAL_Lor: `L`,\r\n CAL_Sun: `S`,\r\n CAL_Available: `Tøkt`,\r\n CAL_NotPossible: `Ikki møguligt`,\r\n\r\n BIN_ChangeDate: `Rætta dagar`,\r\n BIN_ChangeRoom: `Rætta`,\r\n BIN_ChangeAddOns: `Broyt eyka tænastur`,\r\n BIN_NoAddOns: `Eingin tænasta løgd afturat`,\r\n BIN_AddOns: `Ekstra ydelser tilføjet`,\r\n BIN_Reservation: `Tín bílegging`,\r\n BIN_Details: `Grundleggjandi staklutir`,\r\n BIN_RoomCount: `Værelser`,\r\n BIN_CabinCount: `Hytter`,\r\n BIN_HouseCount: `Huse`,\r\n BIN_UnitCount: `Enheder`,\r\n BIN_Roomtype: `Værelsestype`,\r\n BIN_Cabintype: `Værelsestype`,\r\n BIN_Housetype: `Værelsestype`,\r\n BIN_Unittype: `Værelsestype`,\r\n BIN_Packagetype: `Pakketype`,\r\n BIN_BasketEmpty: `Kurvin er tóm`,\r\n BIN_BasketGoToCheckout: `Far til kassan`,\r\n\r\n EXC_EmptyBasket: `Basket must not be empty`,\r\n\r\n SEA_Date: `Dagur`,\r\n SEA_Time: `Tíð`,\r\n SEA_Quantity: `Tal`,\r\n SEA_Skip: `Spring over`,\r\n SEA_ChooseEvent: `Vælg en oplevelse`,\r\n SEA_DescriptionStart: `Vel`,\r\n SEA_DescriptionEnd: `below or date in the calendar`,\r\n SEA_SoldOut: `Alt er udsolgt for den valgte måned`,\r\n SEA_SoldOutContinue: `Tryk på Fortsæt for at springe over`,\r\n SEA_SeatingStandAloneTitle: `Vælg en dato eller en af de viste`,\r\n SEA_ResetCalendar: `Vís øll`,\r\n\r\n MAT_CALENDAR_Calendar_Label: `S`,\r\n MAT_CALENDAR_Close_Calendar_Label: `S`,\r\n MAT_CALENDAR_End_Date_Label: `S`,\r\n MAT_CALENDAR_Next_Month_Label: `S`,\r\n MAT_CALENDAR_Next_Multi_Year_Label: `S`,\r\n MAT_CALENDAR_Next_Year_Label: `S`,\r\n MAT_CALENDAR_Open_Calendar_Label: `S`,\r\n MAT_CALENDAR_Prev_Month_Label: `S`,\r\n MAT_CALENDAR_Prev_Multi_Year_Label: `S`,\r\n MAT_CALENDAR_Prev_Year_Label: `S`,\r\n MAT_CALENDAR_Start_Date_Label: `S`,\r\n MAT_CALENDAR_Switch_To_Month_View_Label: `S`,\r\n MAT_CALENDAR_Switch_To_Multi_Year_View_Label: `S`,\r\n};\r\n","import { Messages } from './index';\r\n\r\nexport const messages: Messages = {\r\n APA_CompanyLogin: `Innskráning fyrirtækis`,\r\n APA_Logout: `Að skrá þig út`,\r\n APA_Welcome: `Halló`,\r\n APA_ShowPromo: `Afsláttarkóði`,\r\n APA_PromoLabel: `Sláðu inn kynningarkóða`,\r\n APA_Promo: `Afsláttarkóði`,\r\n APA_PromoSubmit: `Notaðu`,\r\n APA_PromoChange: `breyta`,\r\n APA_ActivateHead: `Virkjaðu innskráningu þína`,\r\n APA_ActivateDesc: `Sláðu inn lykilorð til að virkja innskráningu fyrir`,\r\n APA_Password: `Lykilorð`,\r\n APA_ConfirmPassword: `Staðfesta lykilorð`,\r\n APA_PasswordHasUpper: `Lykilorð verður að innihalda að minnsta kosti einn hástaf (A-Z)`,\r\n APA_PasswordHasLower: `Lykilorð verður að innihalda að minnsta kosti einn lágstaf (a-z)`,\r\n APA_PasswordHasNumber: `Lykilorð verður að innihalda að minnsta kosti eina tölu (0-9)`,\r\n APA_PasswordLength8: `Lykilorð verður að innihalda að minnsta kosti 8 stafi`,\r\n APA_ConfirmPasswordEqualTo: `Lykilorð passa ekki saman`,\r\n APA_Activate: `Virkjaðu`,\r\n APA_CustomerNotFound: `Því miður getum við ekki fundið viðskiptavinaskrá í gagnagrunninum`,\r\n APA_ResetBasket: `Allt verður tekið úr körfunni. Ert þú viss?`,\r\n APA_Address: `Heimilisfang`,\r\n APA_Contact: `Hafðu samband`,\r\n APA_VatNumber: `VAT:`,\r\n APA_PromoMessageStart: `Afsláttarkóði`,\r\n APA_ValidTime: `Gildistími`,\r\n APA_PromoMessageEnd: `Kynningarkóði gildir á vörum merktum kóðanum`,\r\n APA_AQCDecription: `Aldurslýsing`,\r\n APA_Year: `ár`,\r\n APA_Book: `Bóka`,\r\n\r\n CPA_NothingAvailable_EmptyText: `Vinsamlegast veldu nýja dagsetningu hér að neðan, eða farðu til baka og breyttu upplýsingum þínum frá fyrsta skrefi`,\r\n CPA_NothingAvailable: `Það eru engin laus herbergi sem uppfylla skilyrðin þín`,\r\n CPA_SoldOut: `Uppselt`,\r\n CPA_CustomerInvalid: `Óþekkt viðskiptavinasnið`,\r\n CPA_PromoInvalid: `Kynningarkóði sem þú slóst inn er ógildur`,\r\n CPA_PromoBetween: `Kynningarkóði sem þú slóst inn gildir aðeins ef dvalartíminn er á milli:`,\r\n\r\n RPA_More: `Sjá meira`,\r\n RPA_Select: `Veldu`,\r\n RPA_Selected: `Valið`,\r\n RPA_From: `Verð frá`,\r\n RPA_Image: `Engin mynd`,\r\n RPA_Description: `Lýsing`,\r\n RPA_ChooseRoom: `Veldu herbergi`,\r\n RPA_ChoosePackage: `Veldu Pakki`,\r\n RPA_ChooseCabin: `Veldu skála`,\r\n RPA_ChooseHouse: `Veldu hús`,\r\n RPA_ChooseUnit: `Veldu einingu`,\r\n RPA_BackRate: `Veldu annan pakka`,\r\n RPA_MaxPersons: `Hámarksfjöldi fólks`,\r\n RPA_ChooseYourRoom: `Veldu herbergi`,\r\n RPA_ChooseYourCabin: `Veldu skála`,\r\n RPA_ChooseYourHouse: `Veldu hús`,\r\n RPA_ChooseYourUnit: `Veldu einingu`,\r\n RPA_ChooseYourPackage: `Veldu pakka`,\r\n\r\n APA_Services: `Þjónusta`,\r\n APA_Add: `Bæta við`,\r\n APA_Added: `Bætt við`,\r\n APA_Remove: `Fjarlægja`,\r\n APA_ContentDialog: `Veldu fjölda gesta og daga sem þú vilt velja þjónustuna. Á milli daganna`,\r\n APA_ChooseYourAddOns: `Veldu viðbætur`,\r\n APA_TotalPrice: `Veldu viðbætur`,\r\n APA_TotalInBasket: `stykki, samtals`,\r\n APA_TotalOf: `Veldu magn af`,\r\n\r\n CUP_Header: `Upplýsingar kaupenda`,\r\n CUP_Accept: `Samþykkja`,\r\n CUP_FName: `Nafn`,\r\n CUP_FNameReq: `Fornafn er áskilið`,\r\n CUP_FPhoneReq: `Nafn síma er krafist`,\r\n CUP_LName: `Eftirnafn`,\r\n CUP_LNameReq: `Eftirnafn er áskilið`,\r\n CUP_Address: `Heimilisfang`,\r\n CUP_AddressReq: `Heimilisfang er áskilið`,\r\n CUP_ZipCode: `Póstnúmer`,\r\n CUP_ZipCodeReq: `Póstnúmer er áskilið`,\r\n CUP_City: `Borg`,\r\n CUP_CityReq: `Borg er krafist`,\r\n CUP_Contry: `landi`,\r\n CUP_ContryReq: `Land er krafist`,\r\n CUP_Phone: `Farsímanúmer`,\r\n CUP_PhoneReq: `Farsími er nauðsynlegur`,\r\n CUP_Email: `Tölvupóstur`,\r\n CUP_EmailRepeat: `Endurtaktu tölvupóstfang`,\r\n CUP_EmailReq: `Tölvupóstur er nauðsynlegur`,\r\n CUP_EmailInvalid: `Tölvupóstur er ekki gildur`,\r\n CUP_Comment: `Athugasemd`,\r\n CUP_NeedSubscribe: `Gerast áskrifandi að fréttabréfi`,\r\n CUP_AcceptTerms: `Skilmálar og skilyrði`,\r\n CUP_BookNow: `Bókaðu núna!`,\r\n CUP_CancelPolicyHeader: `Forfallatrygging`,\r\n CUP_CancelPolicyDesc: `Þú hefur möguleika á að hætta við dvöl þína ef þú kemst ekki. Sjá nánari upplýsingar um forfallatryggingu í bókunarskilmálum okkar.`,\r\n CUP_CancelPolicyLabel: `Já, mig langar að kaupa forfallatryggingu fyrir`,\r\n CUP_GuestInfo: `Upplýsingar um gesti`,\r\n CUP_BookingOverview: `Bókunaryfirlit`,\r\n CUP_PayWithGiftcard: `Til að greiða með gjafakorti`,\r\n CUP_PayWithGiftcardClick: `Ýttu hér`,\r\n CUP_PayWithGiftcardDescription: `Sláðu inn kóðann af gjafakortinu þínu`,\r\n CUP_PayWithGiftcardError: `Gjafakort er ekki virkt eða er ekki til.`,\r\n CUP_PayWithGiftcardStatus: `Gjafakort virkt`,\r\n CUP_PayWithGiftcardDiscount: `Upphæð gjafakorts`,\r\n CUP_PayWithGiftcardHeader: `Gjafakort`,\r\n CUP_PayWithGiftcardInformation: `Viltu innleysa gjafakort?`,\r\n CUP_PayWithGiftcardPlaceholder: `Gjafakortskóði`,\r\n CUP_PayWithGiftcardRedeem: `Innleysa`,\r\n CUP_BookingOverviewToPay: `Að greiða`,\r\n\r\n PAL_GoToPayment: `Farðu í greiðslu`,\r\n PAL_PaymentComplete: `Þessari greiðslu er lokið`,\r\n PAL_PaymentNotAvailable: `Ekki er hægt að greiða fyrir þessa pöntun`,\r\n\r\n PAR_Payment: `Greiðsla`,\r\n PAR_SeekAuthorization: `Vinsamlega fylltu út kreditkortaupplýsingarnar þínar hér að neðan til að staðfesta greiðslu þína og ganga frá pöntun`,\r\n PAR_TotalLabel: `Verð fyrir pöntunina þína`,\r\n PAR_TotalPayLabel: `Verð til að greiða`,\r\n PAR_OBSLabel: `ATH: Vertu á síðunni þar til kvittunarsíðan birtist með bíleggingarnummar`,\r\n PAR_OBSLabelGiftcard: `ATH: Vertu á síðunni þar til kvittunarsíðan birtist með bíleggingarnummar`,\r\n PAR_FailedToPay: `Tókst ekki að borga. Athugaðu kortanúmerið þitt.`,\r\n PAR_CardInvalid: `Kortanúmer er ekki gilt`,\r\n PAR_CardUnknown: `Tegund korts ekki þekkt`,\r\n PAR_CardMonthInvalid: `Mánuður er ógildur`,\r\n PAR_CardYearInvalid: `Ár er ógilt`,\r\n PAR_CardCVCInvalid: `CVV kóði er ógildur`,\r\n PAR_FieldRequired: `Þessi reitur er nauðsynlegur`,\r\n PAR_Cancel: `Hætta við`,\r\n PAR_Pay: `Borga`,\r\n PAR_PaymentMethod: `Greiðslumáti`,\r\n PAR_Cardnumber: `Kortanúmer`,\r\n PAR_MonthPlaceholder: `MM`,\r\n PAR_YearPlaceholder: `Ó`,\r\n\r\n PFP_Header: `Hófur! Því miður hefur komið upp villa`,\r\n PFP_Info: `Og pöntunin þín hefur EKKI farið í gegn. Vinsamlegast reyndu aftur með því að smella á hnappinn hér að neðan. Engir peningar hafa verið teknir af reikningnum þínum.`,\r\n PFP_TryAgain: `Reyndu aftur`,\r\n\r\n REP_Header: `Takk fyrir pöntunina,`,\r\n REP_Comment: `asd`,\r\n REP_DateRooms: `ferðadagsetning`,\r\n REP_Return: `Aftur á heimasíðuna`,\r\n REP_OrderId: `Bíleggingarnummar`,\r\n REP_ReservationId: `Bókunarnúmer`,\r\n REP_CustomerInfo: `Persónuupplýsingar`,\r\n\r\n REP_Name: `Nafn`,\r\n REP_PostCity: `Póstnúmer og borg`,\r\n REP_Phone: `Símanúmer`,\r\n REP_Address: `Heimilisfang`,\r\n REP_Country: `Land`,\r\n REP_Email: `Tölvupóstur`,\r\n REP_Thanks: `Takk fyrir pöntunina`,\r\n REP_ThanksInfo: `Þú færð staðfestingu innan skamms tíma með tölvupósti.`,\r\n REP_ThanksPayment: `Greiðslu þinni er lokið`,\r\n\r\n LOA_Addons: `Hleður viðbótum`,\r\n LOA_CustomerInfo: `Hleður upplýsingum um viðskiptavini`,\r\n LOA_ActivatingCustomer: `Virkur viðskiptavinur`,\r\n LOA_Translations: `Hleður þýðingar`,\r\n LOA_Configuration: `Hleður uppsetningu`,\r\n LOA_Availability: `Hleðsla framboð`,\r\n LOA_CreatingReservation: `Búa til fyrirvara`,\r\n LOA_HotelInformation: `Hleður hótelstillingu`,\r\n LOA_Countries: `Hleður lönd`,\r\n LOA_PreparingPaymnent: `Undirbúa greiðslur`,\r\n LOA_ApplyingPromo: `Notar kynningarkóða`,\r\n LOA_Rooms: `Hleðsla herbergja`,\r\n LOA_Rates: `Hleðsluverð`,\r\n LOA_LoggingIn: `Innskráning`,\r\n LOA_SendingInformation: `Sendir upplýsingar`,\r\n\r\n COM_Continue: `Halda áfram`,\r\n COM_OK: `Allt í lagi`,\r\n COM_Persons: `Persónur`,\r\n COM_Guest_10: `Fullorðnir`,\r\n COM_Guest_9: `Unglingar`,\r\n COM_Guest_7: `Ungbörn`,\r\n COM_Guest_11: `Eldri fólk`,\r\n COM_Guest_8: `Börn`,\r\n COM_Adult: `Fullorðinn`,\r\n COM_Child: `Barn`,\r\n COM_Room: `Herbergi`,\r\n COM_Cabin: `Skáli`,\r\n COM_House: `Hús`,\r\n COM_Unit: `Eining`,\r\n COM_Arrival: `Koma`,\r\n COM_Departure: `Brottför`,\r\n COM_Promocode: `Kynningarkóði`,\r\n COM_Rooms: `Herbergi`,\r\n COM_AddOns: `Viðbætur`,\r\n COM_TotalGuests: `Samtals gestir`,\r\n COM_Price: `Verð`,\r\n COM_TotalPrice: `Heildarverð`,\r\n COM_TotalPriceWithTransactionId: `asd`,\r\n COM_TotalReservedWithTransactionId: `asd`,\r\n COM_Close: `Loka`,\r\n COM_Back: `Til baka`,\r\n COM_Error: `Upplýsingar`,\r\n COM_Info: `Upplýsingar`,\r\n COM_Confirm: `Staðfesta`,\r\n COM_Package: `Pakki`,\r\n COM_SoldOutError: `Það eru engin laus herbergi eða pakkar á þessari dagsetningu`,\r\n COM_SearchNew: `Ný leit`,\r\n COM_TableReservation: `Borðapantanir`,\r\n COM_TableNumberOfPersons: `Fjöldi fólks við borðið`,\r\n COM_Guests: `Gestir`,\r\n COM_TableChooseProduct: `Veldu dagsetningu og vörur`,\r\n COM_TablePlaceGuests: `Þú þarft að setja`,\r\n COM_TableChooseProducts: `Veldu vöru(r)`,\r\n COM_TableNumberOfGuestsForProduct: `Fjöldi gesta fyrir þessa vöru`,\r\n COM_TableBookingFlowAddProduct: `Viltu bæta við borðpöntun við dvölina?`,\r\n COM_TableIfNotPressContinue: `Ef ekki ýttu á halda áfram`,\r\n COM_AddToBasket: `Setja í körfu`,\r\n COM_AddedToBasket: `Bætt við í kurv`,\r\n COM_Type: `Gerð`,\r\n COM_SeatingSoldOut: `Ekkert í boði í augnablikinu`,\r\n COM_Main: `Heim`,\r\n COM_Conference: `Ráðstefna`,\r\n COM_Quantity: `Magn`,\r\n\r\n LFO_Email: `Tölvupóstur`,\r\n LFO_EmailRequried: `Tölvupóstur er nauðsynlegur`,\r\n LFO_EmailInvalid: `Tölvupóstur er ekki gildur`,\r\n LFO_Password: `Lykilorð`,\r\n LFO_PasswordRequried: `Lykilorð krafist`,\r\n LFO_ForgotPassword: `Geturðu ekki fengið aðgang að reikningnum þínum?`,\r\n LFO_Login: `Skrá inn`,\r\n LFO_BackToLogin: `Til baka í Innskráning`,\r\n LFO_Send: `Senda`,\r\n LFO_MessageSend: `Skilaboð send!`,\r\n LFO_LoginError: `Rangt netfang eða lykilorð`,\r\n LFO_RecoveryError: `Innskráningarupplýsingar ógildar`,\r\n\r\n SFO_ChooseHotel: `Hótelin okkar`,\r\n SFO_ChooseHolidayResort: `Orlofsdvalarstaðirnir okkar`,\r\n SFO_ChooseCenter: `Miðstöðvar okkar`,\r\n SFO_ChooseDepartment: `Veldu Deild`,\r\n SFO_ParamsHeader: `Veldu dagsetningu`,\r\n SFO_Guests: `Gestir í herbergi`,\r\n SFO_GuestsCabin: `Gestir í Cabin`,\r\n SFO_GuestsHouse: `Gestir í húsinu`,\r\n SFO_GuestsUnit: `Gestir í einingu`,\r\n SFO_AddRoom: `Fleiri herbergi`,\r\n SFO_AddCabin: `Fleiri skálar`,\r\n SFO_AddHouse: `Fleiri hús`,\r\n SFO_AddUnit: `Fleiri einingar`,\r\n SFO_BookStay: `vera`,\r\n SFO_BookEvent: `Event`,\r\n SFO_BookTakeAway: `Taka í burtu`,\r\n SFO_BookTableReservation: `Borðapantanir`,\r\n SFO_BookGiftcard: `Gjafakort`,\r\n SFO_GiftcardMetaData: `Lýsigögn fyrir gjafakortið þitt`,\r\n SFO_ChooseGiftcard: `Veldu Gjafakort`,\r\n SFO_NumberOfGiftcards: `Hversu mörg af völdum gjafakortum viltu kaupa?`,\r\n SFO_GiftcardAmount: `Sláðu inn upphæð`,\r\n SFO_GiftcardEnterDetails: `Sláðu inn upplýsingar um gjafakortin þín`,\r\n SFO_ChooseGiftcardDescription: `Kauptu gjafakort til einhvers sem þér þykir vænt um`,\r\n SFO_GiftcardDetails: `Upplýsingar um gjafakort`,\r\n SFO_GiftcardTo: `Fyrir hvern er gjafakortið (valfrjálst)`,\r\n SFO_GiftcardFrom: `Frá hverjum er gjafakortið (valfrjálst)`,\r\n SFO_GiftcardMessage: `Skrifaðu kveðju (Hámark 100 stafir) (valfrjálst)`,\r\n SFO_BookArrangement: `Fyrirkomulag`,\r\n SFO_BookConcert: `Tónleikar`,\r\n SFO_BookTableArangement: `Borð/fyrirkomulag`,\r\n SFO_BookTableEvent: `Tafla/viðburður`,\r\n SFO_BordTakeAway: `Borð / Take Away`,\r\n SFO_BookTicket: `Miði`,\r\n SFO_BookLecture: `Fyrirlestur`,\r\n SFO_BookTable: `Bókaborð`,\r\n SFO_BookSpa: `Spa`,\r\n SFO_BookExperience: `Viðburður`,\r\n SFO_ChooseMonth: `Veldu mánuð`,\r\n SFO_NoRooms: `Engin herbergi fundust á völdum tíma!`,\r\n SFO_MinLOS: `Valið tímabil krefst bókunar að lágmarki`,\r\n SFO_Nights: `nætur`,\r\n SFO_MaxLOS: `Á völdu tímabili er hægt að bóka að hámarki`,\r\n\r\n CAL_WeekStart: `1`,\r\n CAL_M01: `janúar`,\r\n CAL_M02: `febrúar`,\r\n CAL_M03: `mars`,\r\n CAL_M04: `apríl`,\r\n CAL_M05: `maí`,\r\n CAL_M06: `júní`,\r\n CAL_M07: `júlí`,\r\n CAL_M08: `ágúst`,\r\n CAL_M09: `september`,\r\n CAL_M10: `október`,\r\n CAL_M11: `nóvember`,\r\n CAL_M12: `desember`,\r\n CAL_D0: `sunnudag`,\r\n CAL_D1: `Mánudagur`,\r\n CAL_D2: `þriðjudag`,\r\n CAL_D3: `miðvikudag`,\r\n CAL_D4: `fimmtudag`,\r\n CAL_D5: `föstudag`,\r\n CAL_D6: `laugardag`,\r\n CAL_Selected: `Valið`,\r\n CAL_Occupied: `Uppselt/Lokað`,\r\n CAL_Arrival: `Lokað fyrir komu`,\r\n CAL_Departure: `Lokað vegna brottfarar`,\r\n CAL_Mon: `M`,\r\n CAL_Tirs: `þ`,\r\n CAL_Ons: `m`,\r\n CAL_Tors: `f`,\r\n CAL_Fre: `f`,\r\n CAL_Lor: `L`,\r\n CAL_Sun: `S`,\r\n CAL_Available: `Laus`,\r\n CAL_NotPossible: `Ekki mögulegt`,\r\n\r\n BIN_ChangeDate: `Breyta dagsetningu`,\r\n BIN_ChangeRoom: `Breyta`,\r\n BIN_ChangeAddOns: `Breyta viðbótum`,\r\n BIN_NoAddOns: `Engum þjónustu bætt við`,\r\n BIN_AddOns: `Þjónusta bætt við`,\r\n BIN_Reservation: `Bókun þín`,\r\n BIN_Details: `Grunnupplýsingar`,\r\n BIN_RoomCount: `Herbergi`,\r\n BIN_CabinCount: `Skálar`,\r\n BIN_HouseCount: `Hús`,\r\n BIN_UnitCount: `Einingar`,\r\n BIN_Roomtype: `Herbergistegund`,\r\n BIN_Cabintype: `Gerð klefa`,\r\n BIN_Housetype: `Húsgerð`,\r\n BIN_Unittype: `Tegund eininga`,\r\n BIN_Packagetype: `Tegund pakka`,\r\n BIN_BasketEmpty: `Karfan er tóm`,\r\n BIN_BasketGoToCheckout: `Farðu í kassa`,\r\n\r\n EXC_EmptyBasket: `Karfan má ekki vera tóm`,\r\n\r\n SEA_Date: `Dagsetning`,\r\n SEA_Time: `Tími`,\r\n SEA_Quantity: `Magn`,\r\n SEA_Skip: `Sleppa`,\r\n SEA_ChooseEvent: `Veldu Viðburður`,\r\n SEA_DescriptionStart: `Select`,\r\n SEA_DescriptionEnd: `below or date in the calendar`,\r\n SEA_SoldOut: `Allt er uppselt fyrir valinn mánuð`,\r\n SEA_SoldOutContinue: `Everything is sold out for the chosen month`,\r\n SEA_SeatingStandAloneTitle: `Veldu dagsetningu eða eina af þeim sem sýndar eru valkosti`,\r\n SEA_ResetCalendar: `Sýna allar`,\r\n\r\n MAT_CALENDAR_Calendar_Label: `S`,\r\n MAT_CALENDAR_Close_Calendar_Label: `S`,\r\n MAT_CALENDAR_End_Date_Label: `S`,\r\n MAT_CALENDAR_Next_Month_Label: `S`,\r\n MAT_CALENDAR_Next_Multi_Year_Label: `S`,\r\n MAT_CALENDAR_Next_Year_Label: `S`,\r\n MAT_CALENDAR_Open_Calendar_Label: `S`,\r\n MAT_CALENDAR_Prev_Month_Label: `S`,\r\n MAT_CALENDAR_Prev_Multi_Year_Label: `S`,\r\n MAT_CALENDAR_Prev_Year_Label: `S`,\r\n MAT_CALENDAR_Start_Date_Label: `S`,\r\n MAT_CALENDAR_Switch_To_Month_View_Label: `S`,\r\n MAT_CALENDAR_Switch_To_Multi_Year_View_Label: `S`,\r\n};\r\n","import { Messages } from './index';\r\n\r\nexport const messages: Messages = {\r\n APA_CompanyLogin: `Firma login`,\r\n APA_Logout: `Log ud`,\r\n APA_Welcome: `Velkommen`,\r\n APA_ShowPromo: `Rabatkode`,\r\n APA_PromoLabel: `Indtast rabatkode`,\r\n APA_Promo: `Rabatkode`,\r\n APA_PromoSubmit: `Benyt`,\r\n APA_PromoChange: `ændre`,\r\n APA_ActivateHead: `Aktiver dit login`,\r\n APA_ActivateDesc: `Angiv adgangskode for at aktivere login for`,\r\n APA_Password: `Adgangskode`,\r\n APA_ConfirmPassword: `Bekræft adgangskode`,\r\n APA_PasswordHasUpper: `Adgangskode skal indeholde mindst et stort bogstav (A-Z)`,\r\n APA_PasswordHasLower: `Adgangskode skal indeholde mindst et lille bogstav (a-z)`,\r\n APA_PasswordHasNumber: `Adgangskode skal indeholde mindst et tal (0-9)`,\r\n APA_PasswordLength8: `Adgangskode skal indeholde mindst 8 karakterer`,\r\n APA_ConfirmPasswordEqualTo: `Forkert adgangskode`,\r\n APA_Activate: `Aktivera`,\r\n APA_CustomerNotFound: `Kunde ikke fundet`,\r\n APA_ResetBasket: `Alt vil blive fjernet fra kurven. Er du sikker?`,\r\n APA_Address: `Adresse`,\r\n APA_Contact: `Kontakt`,\r\n APA_VatNumber: `CVR:`,\r\n APA_PromoMessageStart: `Kampagne koden`,\r\n APA_ValidTime: `Gyldigheds periode`,\r\n APA_PromoMessageEnd: `Koden er gyldig på de produkter der er markeret med en procentvis rabat`,\r\n APA_AQCDecription: `Aldersbeskrivelse`,\r\n APA_Year: `år`,\r\n APA_Book: `Book`,\r\n\r\n CPA_NothingAvailable_EmptyText: `Vælg venligst en ny dato herunder, eller gå tilbage og ændre dine oplysninger fra første step`,\r\n CPA_NothingAvailable: `Der er ingen ledige værelser, der opfylder dine kriterier`,\r\n CPA_SoldOut: `Udsolgt`,\r\n CPA_CustomerInvalid: `Ukendt kundeprofil`,\r\n CPA_PromoInvalid: `Den indtastede rabatkode er ugyldig.`,\r\n CPA_PromoBetween: `Den indtastede rabatkode er kun gyldig hvis opholdet er i perioden:`,\r\n\r\n RPA_More: `Se mere`,\r\n RPA_Select: `Vælg`,\r\n RPA_Selected: `Valgt`,\r\n RPA_From: `Fra`,\r\n RPA_Image: `No image`,\r\n RPA_Description: `Description`,\r\n RPA_ChooseRoom: `Vælg værelse`,\r\n RPA_ChoosePackage: `Vælg Pakke`,\r\n RPA_ChooseCabin: `Vælg værelse`,\r\n RPA_ChooseHouse: `Vælg værelse`,\r\n RPA_ChooseUnit: `Vælg værelse`,\r\n RPA_BackRate: `Vælg en anden pakke`,\r\n RPA_MaxPersons: `Maks antal personer`,\r\n RPA_ChooseYourRoom: `Vælg værelse`,\r\n RPA_ChooseYourCabin: `Vælg værelse`,\r\n RPA_ChooseYourHouse: `Vælg værelse`,\r\n RPA_ChooseYourUnit: `Vælg værelse`,\r\n RPA_ChooseYourPackage: `Vælg pakke`,\r\n\r\n APA_Services: `Ekstra tilkøb`,\r\n APA_Add: `Tilføj`,\r\n APA_Added: `Tilføjet`,\r\n APA_Remove: `Fjern`,\r\n APA_ContentDialog: `Vælg det antal personer og dage du ønsker den valgte service. Mellem datoerne`,\r\n APA_ChooseYourAddOns: `Vælg ekstra tilkøb`,\r\n APA_TotalPrice: `Samlet pris`,\r\n APA_TotalInBasket: `stk, i alt`,\r\n APA_TotalOf: `Vælg antal à`,\r\n\r\n CUP_Header: `Gæsteinformation`,\r\n CUP_Accept: `Accepter betingelser`,\r\n CUP_FName: `Fornavn`,\r\n CUP_FNameReq: `Fornavn skal oplyses`,\r\n CUP_FPhoneReq: `Mobil skal oplyses`,\r\n CUP_LName: `Efternavn`,\r\n CUP_LNameReq: `Efternavn skal oplyses`,\r\n CUP_Address: `Adresse`,\r\n CUP_AddressReq: `Adressen skal oplyses`,\r\n CUP_ZipCode: `Postnummer`,\r\n CUP_ZipCodeReq: `Postnr. skal oplyses`,\r\n CUP_City: `By`,\r\n CUP_CityReq: `By skal oplyses`,\r\n CUP_Contry: `Land`,\r\n CUP_ContryReq: `Land er påkrævet`,\r\n CUP_Phone: `Mobil`,\r\n CUP_PhoneReq: `Mobilnr. skal oplyses`,\r\n CUP_Email: `E-mail`,\r\n CUP_EmailRepeat: `E-mail`,\r\n CUP_EmailReq: `E-mail skal oplyses`,\r\n CUP_EmailInvalid: `E-mail er ikke korrekt`,\r\n CUP_Comment: `Kommentarer`,\r\n CUP_NeedSubscribe: `Jeg vil gerne modtage nyheder pr. e-mail.`,\r\n CUP_AcceptTerms: `Jeg har læst og accepterer betingelserne.`,\r\n CUP_BookNow: `Book`,\r\n CUP_CancelPolicyHeader: `Afbestillingsforsikring`,\r\n CUP_CancelPolicyDesc: `Du har mulighed for at annullere dit ophold hvis du skulle blive forhindret i at ankomme. Se yderligere oplysninger om vilkår for afbestillingsbeskyttelsen i vores betingelser.`,\r\n CUP_CancelPolicyLabel: `Ja, jeg vil gerne tilkøbe afbestillingsforsikring til`,\r\n CUP_GuestInfo: `Gæsteoplysninger`,\r\n CUP_BookingOverview: `Booking oversigt`,\r\n CUP_PayWithGiftcard: `For at betale med gavekort`,\r\n CUP_PayWithGiftcardClick: `Klik her`,\r\n CUP_PayWithGiftcardDescription: `Indtast din kode fra dit gavekort`,\r\n CUP_PayWithGiftcardError: `Gavekort er ikke aktivt eller kunne ikke findes i systemet.`,\r\n CUP_PayWithGiftcardStatus: `Gavekort aktivt`,\r\n CUP_PayWithGiftcardDiscount: `Gavekort beløb`,\r\n CUP_PayWithGiftcardHeader: `Gavekort`,\r\n CUP_PayWithGiftcardInformation: `Vil du indløse et gavekort?`,\r\n CUP_PayWithGiftcardPlaceholder: `Gavekortskode`,\r\n CUP_PayWithGiftcardRedeem: `Indløs`,\r\n CUP_BookingOverviewToPay: `At betale`,\r\n\r\n PAL_GoToPayment: `Gå til betaling`,\r\n PAL_PaymentComplete: `Denne betaling er afsluttet`,\r\n PAL_PaymentNotAvailable: `Payment on this reservation is not available`,\r\n\r\n PAR_Payment: `Betaling`,\r\n PAR_SeekAuthorization: `Dine kreditkortoplysninger vil blive brugt som betaling, eller alternativt som sikkerhed for købet.`,\r\n PAR_TotalLabel: `Pris på din bestilling`,\r\n PAR_TotalPayLabel: `Pris at betale`,\r\n PAR_OBSLabel: `OBS: bliv på siden indtil kvitteringsside vises med et reservationsnummer`,\r\n PAR_OBSLabelGiftcard: `OBS: bliv på siden indtil kvitteringsside vises med et ordrenummer`,\r\n PAR_FailedToPay: `Det lykkedes ikke at betale. Tjek dit kortnummer.`,\r\n PAR_CardInvalid: `Kortnummer er ikke gyldigt`,\r\n PAR_CardUnknown: `Korttype ikke kendt`,\r\n PAR_CardMonthInvalid: `Måned er ugyldig`,\r\n PAR_CardYearInvalid: `År er ugyldig`,\r\n PAR_CardCVCInvalid: `CVV-kode er ugyldig`,\r\n PAR_FieldRequired: `Skal udfyldes`,\r\n PAR_Cancel: `Annuller`,\r\n PAR_Pay: `Betal`,\r\n PAR_PaymentMethod: `Payment Methods`,\r\n PAR_Cardnumber: `Kortnummer`,\r\n PAR_MonthPlaceholder: `MM`,\r\n PAR_YearPlaceholder: `ÅÅ`,\r\n\r\n PFP_Header: `Hov! Der er desværre sket en fejl`,\r\n PFP_Info: `Og din ordre er IKKE gået igennem. Prøv venligst igen ved at klikke på knappen herunder. Der er ikke blevet trukket penge på din konto.`,\r\n PFP_TryAgain: `Prøv igen`,\r\n\r\n REP_Header: `Tak for din bestilling,`,\r\n REP_Comment: `herunder finder du din kvittering for din ordre.`,\r\n REP_DateRooms: `Rejsedato`,\r\n REP_Return: `Tilbage til hjemmeside`,\r\n REP_OrderId: `Ordrenummer`,\r\n REP_ReservationId: `Reservationsnummer`,\r\n REP_CustomerInfo: `Personlige oplysninger`,\r\n\r\n REP_Name: `Navn`,\r\n REP_PostCity: `Postnr & By`,\r\n REP_Phone: `Telefon`,\r\n REP_Address: `Adresse`,\r\n REP_Country: `Land`,\r\n REP_Email: `Email`,\r\n REP_Thanks: `Tak for din ordre`,\r\n REP_ThanksInfo: `Vi vil sende dig alle de oplysninger om kort tid.`,\r\n REP_ThanksPayment: `Din betaling er gennemført`,\r\n\r\n LOA_Addons: `Henter ekstra ydelser`,\r\n LOA_CustomerInfo: `Henter kunde informationer`,\r\n LOA_ActivatingCustomer: `Aktiver kunde`,\r\n LOA_Translations: `Henter oversættelser`,\r\n LOA_Configuration: `Indlæser konfiguration`,\r\n LOA_Availability: `Henter ledighed`,\r\n LOA_CreatingReservation: `Opretter reservation`,\r\n LOA_HotelInformation: `Indlæser hotel information`,\r\n LOA_Countries: `Henter lande`,\r\n LOA_PreparingPaymnent: `Forbereder betaling`,\r\n LOA_ApplyingPromo: `Indlæser rabatkode`,\r\n LOA_Rooms: `Indlæser værelser`,\r\n LOA_Rates: `Indlæser priser`,\r\n LOA_LoggingIn: `Logger ind`,\r\n LOA_SendingInformation: `Sender information`,\r\n\r\n COM_Continue: `Fortsæt`,\r\n COM_OK: `OK`,\r\n COM_Persons: `Personer`,\r\n COM_Guest_10: `Voksne`,\r\n COM_Guest_9: `Teenagere`,\r\n COM_Guest_7: `Baby`,\r\n COM_Guest_11: `Seniorer`,\r\n COM_Guest_8: `Børn`,\r\n COM_Adult: `Voksen`,\r\n COM_Child: `Barn`,\r\n COM_Room: `Værelse`,\r\n COM_Cabin: `Hytte`,\r\n COM_House: `Hus`,\r\n COM_Unit: `Enhed`,\r\n COM_Arrival: `Ankomst`,\r\n COM_Departure: `Afrejse`,\r\n COM_Promocode: `Rabatkode`,\r\n COM_Rooms: `Værelser`,\r\n COM_AddOns: `Ekstra ydelser`,\r\n COM_TotalGuests: `Antal gæster`,\r\n COM_Price: `Pris`,\r\n COM_TotalPrice: `Pris total`,\r\n COM_TotalPriceWithTransactionId: `I alt betalt med transaktionsnr.`,\r\n COM_TotalReservedWithTransactionId: `I alt er reserveret med transactionId`,\r\n COM_Close: `Luk`,\r\n COM_Back: `Tilbage`,\r\n COM_Error: `Info`,\r\n COM_Info: `Information`,\r\n COM_Confirm: `Bekræft`,\r\n COM_Package: `Pakke`,\r\n COM_SoldOutError: `Der er ikke nogle ledige værelser eller pakker på denne dag`,\r\n COM_SearchNew: `Ny søgning`,\r\n COM_TableReservation: `Table Reservation`,\r\n COM_TableNumberOfPersons: `Antall personer ved bordet`,\r\n COM_Guests: `Guests`,\r\n COM_TableChooseProduct: `Vælg dato og produkt`,\r\n COM_TablePlaceGuests: `Du mangler at placere`,\r\n COM_TableChooseProducts: `Vælg produkt(er)`,\r\n COM_TableNumberOfGuestsForProduct: `Antal gæster til dette produkt`,\r\n COM_TableBookingFlowAddProduct: `Ønsker du at lave en bord reservation på dit ophold?`,\r\n COM_TableIfNotPressContinue: `Ellers tryk fortsæt`,\r\n COM_AddToBasket: `Læg i kurv`,\r\n COM_AddedToBasket: `Tilføjet til kurv`,\r\n COM_Type: `Type`,\r\n COM_SeatingSoldOut: `Nothing available at the moment`,\r\n COM_Main: `Home`,\r\n COM_Conference: `Konference`,\r\n COM_Quantity: `Antal`,\r\n\r\n LFO_Email: `E-mail`,\r\n LFO_EmailRequried: `E-mail skal oplyses`,\r\n LFO_EmailInvalid: `E-mail er ikke korrekt`,\r\n LFO_Password: `Adgangskode`,\r\n LFO_PasswordRequried: `Adgangskode påkrævet`,\r\n LFO_ForgotPassword: `Kan du ikke tilgå din konto ?`,\r\n LFO_Login: `Log ind`,\r\n LFO_BackToLogin: `Tilbage til indlogning`,\r\n LFO_Send: `Send`,\r\n LFO_MessageSend: `Besked afsendt!`,\r\n LFO_LoginError: `Wrong email or password`,\r\n LFO_RecoveryError: `Loginoplysninger ugyldige`,\r\n\r\n SFO_ChooseHotel: `Vælg hotel`,\r\n SFO_ChooseHolidayResort: `Vores hoteller`,\r\n SFO_ChooseCenter: `Vores hoteller`,\r\n SFO_ChooseDepartment: `Vælg hotel`,\r\n SFO_ParamsHeader: `Vælg rejsedato`,\r\n SFO_Guests: `Gæster i værelse`,\r\n SFO_GuestsCabin: `Gæster i værelse`,\r\n SFO_GuestsHouse: `Gæster i værelse`,\r\n SFO_GuestsUnit: `Gæster i værelse`,\r\n SFO_AddRoom: `Flere værelser`,\r\n SFO_AddCabin: `Flere værelser`,\r\n SFO_AddHouse: `Flere værelser`,\r\n SFO_AddUnit: `Flere værelser`,\r\n SFO_BookStay: `Ophold`,\r\n SFO_BookEvent: `Event`,\r\n SFO_BookTakeAway: `Oplevelse`,\r\n SFO_BookTableReservation: `Oplevelse`,\r\n SFO_BookGiftcard: `Gavekort`,\r\n SFO_GiftcardMetaData: `Grunddata for dine gavekort`,\r\n SFO_ChooseGiftcard: `Vælg Gavekort`,\r\n SFO_NumberOfGiftcards: `Hvormange af de valgte gavekort vil du købe?`,\r\n SFO_GiftcardAmount: `Indtast beløb`,\r\n SFO_GiftcardEnterDetails: `Udfyld detaljer for dine gavekort`,\r\n SFO_ChooseGiftcardDescription: `Køb et gavekort til en du holder af`,\r\n SFO_GiftcardDetails: `Gavekort detaljer`,\r\n SFO_GiftcardTo: `Hvem er gavekortet til (valgfrit)`,\r\n SFO_GiftcardFrom: `Hvem er gavekortet fra (valgfrit)`,\r\n SFO_GiftcardMessage: `Skriv en hilsen (Maks 100 tegn) (valgfrit)`,\r\n SFO_BookArrangement: `Oplevelse`,\r\n SFO_BookConcert: `Oplevelse`,\r\n SFO_BookTableArangement: `Oplevelse`,\r\n SFO_BookTableEvent: `Oplevelse`,\r\n SFO_BordTakeAway: `Oplevelse`,\r\n SFO_BookTicket: `Oplevelse`,\r\n SFO_BookLecture: `Oplevelse`,\r\n SFO_BookTable: `Oplevelse`,\r\n SFO_BookSpa: `Spa`,\r\n SFO_BookExperience: `Oplevelse`,\r\n SFO_ChooseMonth: `Vælg Måned`,\r\n SFO_NoRooms: `Der blev ikke fundet nogle ledige værelser i det valgte tidsrum!`,\r\n SFO_MinLOS: `Den valgte periode kræver booking af minimum`,\r\n SFO_Nights: `nætter`,\r\n SFO_MaxLOS: `I den valgte periode er det maksimalt muligt at booke`,\r\n\r\n CAL_WeekStart: `1`,\r\n CAL_M01: `Januar`,\r\n CAL_M02: `Februar`,\r\n CAL_M03: `Marts`,\r\n CAL_M04: `April`,\r\n CAL_M05: `Maj`,\r\n CAL_M06: `Juni`,\r\n CAL_M07: `Juli`,\r\n CAL_M08: `August`,\r\n CAL_M09: `September`,\r\n CAL_M10: `Oktober`,\r\n CAL_M11: `November`,\r\n CAL_M12: `December`,\r\n CAL_D0: `Søndag`,\r\n CAL_D1: `Mandag`,\r\n CAL_D2: `Tirsdag`,\r\n CAL_D3: `Onsdag`,\r\n CAL_D4: `Torsdag`,\r\n CAL_D5: `Fredag`,\r\n CAL_D6: `Lørdag`,\r\n CAL_Selected: `Valgt`,\r\n CAL_Occupied: `lukket`,\r\n CAL_Arrival: `Lukket for ankomst`,\r\n CAL_Departure: `lukket`,\r\n CAL_Mon: `M`,\r\n CAL_Tirs: `T`,\r\n CAL_Ons: `O`,\r\n CAL_Tors: `T`,\r\n CAL_Fre: `F`,\r\n CAL_Lor: `L`,\r\n CAL_Sun: `S`,\r\n CAL_Available: `Ledigt`,\r\n CAL_NotPossible: `Ikke muligt`,\r\n\r\n BIN_ChangeDate: `Ret dato`,\r\n BIN_ChangeRoom: `Ret`,\r\n BIN_ChangeAddOns: `Ændre ekstra ydelser`,\r\n BIN_NoAddOns: `Ingen ekstra ydelser tilføjet`,\r\n BIN_AddOns: `Ekstra ydelser tilføjet`,\r\n BIN_Reservation: `Din Reservation`,\r\n BIN_Details: `Basis Detaljer`,\r\n BIN_RoomCount: `Værelser`,\r\n BIN_CabinCount: `Hytter`,\r\n BIN_HouseCount: `Huse`,\r\n BIN_UnitCount: `Enheder`,\r\n BIN_Roomtype: `Værelsestype`,\r\n BIN_Cabintype: `Værelsestype`,\r\n BIN_Housetype: `Værelsestype`,\r\n BIN_Unittype: `Værelsestype`,\r\n BIN_Packagetype: `Pakketype`,\r\n BIN_BasketEmpty: `Kurven er tom`,\r\n BIN_BasketGoToCheckout: `Gå til kassen`,\r\n\r\n EXC_EmptyBasket: `Basket must not be empty`,\r\n\r\n SEA_Date: `dato`,\r\n SEA_Time: `tid`,\r\n SEA_Quantity: `antal`,\r\n SEA_Skip: `Spring over`,\r\n SEA_ChooseEvent: `Vælg en oplevelse`,\r\n SEA_DescriptionStart: `Select`,\r\n SEA_DescriptionEnd: `below or date in the calendar`,\r\n SEA_SoldOut: `Alt er udsolgt for den valgte måned`,\r\n SEA_SoldOutContinue: `Tryk på Fortsæt for at springe over`,\r\n SEA_SeatingStandAloneTitle: `Vælg en dato eller en af de viste`,\r\n SEA_ResetCalendar: `Vis alle`,\r\n\r\n MAT_CALENDAR_Calendar_Label: `S`,\r\n MAT_CALENDAR_Close_Calendar_Label: `S`,\r\n MAT_CALENDAR_End_Date_Label: `S`,\r\n MAT_CALENDAR_Next_Month_Label: `S`,\r\n MAT_CALENDAR_Next_Multi_Year_Label: `S`,\r\n MAT_CALENDAR_Next_Year_Label: `S`,\r\n MAT_CALENDAR_Open_Calendar_Label: `S`,\r\n MAT_CALENDAR_Prev_Month_Label: `S`,\r\n MAT_CALENDAR_Prev_Multi_Year_Label: `S`,\r\n MAT_CALENDAR_Prev_Year_Label: `S`,\r\n MAT_CALENDAR_Start_Date_Label: `S`,\r\n MAT_CALENDAR_Switch_To_Month_View_Label: `S`,\r\n MAT_CALENDAR_Switch_To_Multi_Year_View_Label: `S`,\r\n};\r\n","import { Messages } from './index';\r\n\r\nexport const messages: Messages = {\r\n APA_CompanyLogin: `selskapet innlogging`,\r\n APA_Logout: `Logg ut`,\r\n APA_Welcome: `Hallo`,\r\n APA_ShowPromo: `Kampanjekode`,\r\n APA_PromoLabel: `Skriv inn kampanjekoden`,\r\n APA_Promo: `Kampanjekode`,\r\n APA_PromoSubmit: `Bruk`,\r\n APA_PromoChange: `endring`,\r\n APA_ActivateHead: `Aktiver pålogging`,\r\n APA_ActivateDesc: `Skriv inn passord for å aktivere pålogging for`,\r\n APA_Password: `Passord`,\r\n APA_ConfirmPassword: `bekreft passord`,\r\n APA_PasswordHasUpper: `Passordet må inneholde minst én stor bokstav (A-Z)`,\r\n APA_PasswordHasLower: `Passord må inneholde minst en liten bokstav (a-z)`,\r\n APA_PasswordHasNumber: `Passordet må inneholde minst ett tall (0-9)`,\r\n APA_PasswordLength8: `Passordet må inneholde minst 8 tegn`,\r\n APA_ConfirmPasswordEqualTo: `Passord stemmer ikke`,\r\n APA_Activate: `Aktiver`,\r\n APA_CustomerNotFound: `Beklager at vi ikke kan finne kundepost i ut database`,\r\n APA_ResetBasket: `Alt vil bli fjernet fra kurven. Er du sikker?`,\r\n APA_Address: `Adresse`,\r\n APA_Contact: `Kontakt`,\r\n APA_VatNumber: `CVR:`,\r\n APA_PromoMessageStart: `Kampagne koden`,\r\n APA_ValidTime: `Gyldigheds periode`,\r\n APA_PromoMessageEnd: `Koden er gyldig på de produkter der er markeret med en procentvis rabat`,\r\n APA_AQCDecription: `Aldersbeskrivelse`,\r\n APA_Year: `år`,\r\n APA_Book: `Bestill`,\r\n\r\n CPA_NothingAvailable_EmptyText: `Vennligst velg en ny dato nedenfor, eller gå tilbake og endre informasjonen fra det første skrittet`,\r\n CPA_NothingAvailable: `Det er ingen tilgjengelige rom som tilfredsstiller dine kriterier`,\r\n CPA_SoldOut: `Utsolgt`,\r\n CPA_CustomerInvalid: `Kunden er ikke gyldig`,\r\n CPA_PromoInvalid: `Kampanjekoden du skrev inn er ugyldig.`,\r\n CPA_PromoBetween: `Kampanjekoden du skrev inn er bare gyldig hvis oppholdet perioden er mellom:`,\r\n\r\n RPA_More: `Vis mer`,\r\n RPA_Select: `Å velge`,\r\n RPA_Selected: `valgt`,\r\n RPA_From: `Starter fra`,\r\n RPA_Image: `Ikke noe bilde`,\r\n RPA_Description: `Beskrivelse`,\r\n RPA_ChooseRoom: `Velg rom`,\r\n RPA_ChoosePackage: `Velg Pakke`,\r\n RPA_ChooseCabin: `Velg hytte`,\r\n RPA_ChooseHouse: `Velg hus`,\r\n RPA_ChooseUnit: `Velg enhet`,\r\n RPA_BackRate: `Velg en annen pakke`,\r\n RPA_MaxPersons: `Maksimalt antall personer`,\r\n RPA_ChooseYourRoom: `Velg rommet ditt`,\r\n RPA_ChooseYourCabin: `Velg hytta`,\r\n RPA_ChooseYourHouse: `Velg huset`,\r\n RPA_ChooseYourUnit: `Velg enheten din`,\r\n RPA_ChooseYourPackage: `Velg pakken`,\r\n\r\n APA_Services: `tjenester`,\r\n APA_Add: `Legg til`,\r\n APA_Added: `La til`,\r\n APA_Remove: `Fjerne`,\r\n APA_ContentDialog: `Velg antall personer og dager du vil ha tjenesten valgt. Mellom datoene`,\r\n APA_ChooseYourAddOns: `Velg ekstra kjøp`,\r\n APA_TotalPrice: `Totalkostnad`,\r\n APA_TotalInBasket: `stk, totalt`,\r\n APA_TotalOf: `Velg mengde av`,\r\n\r\n CUP_Header: `gjest detaljer`,\r\n CUP_Accept: `Aksepterer`,\r\n CUP_FName: `Navn`,\r\n CUP_FNameReq: `Fornavn er påkrevd`,\r\n CUP_FPhoneReq: `Mobilnummer er påkrevd`,\r\n CUP_LName: `Etternavn`,\r\n CUP_LNameReq: `Etternavn er påkrevd`,\r\n CUP_Address: `Adresse`,\r\n CUP_AddressReq: `Adresse er påkrevd`,\r\n CUP_ZipCode: `Postnummer`,\r\n CUP_ZipCodeReq: `Postnummer er nødvendig`,\r\n CUP_City: `By`,\r\n CUP_CityReq: `Byen er nødvendig`,\r\n CUP_Contry: `Land`,\r\n CUP_ContryReq: `Land er nødvendig`,\r\n CUP_Phone: `Mobiltelefonnummer`,\r\n CUP_PhoneReq: `Mobiltelefon er nødvendig`,\r\n CUP_Email: `e-post`,\r\n CUP_EmailRepeat: `Gjenta e-post`,\r\n CUP_EmailReq: `E-post er påkrevd`,\r\n CUP_EmailInvalid: `E-post er ikke gyldig`,\r\n CUP_Comment: `Kommentar`,\r\n CUP_NeedSubscribe: `Abonner på nyhetsbrev`,\r\n CUP_AcceptTerms: `Vilkår og betingelser`,\r\n CUP_BookNow: `Bestill nå!`,\r\n CUP_CancelPolicyHeader: `Avbestillingsforsikring`,\r\n CUP_CancelPolicyDesc: `Du har muligheten til å avbryte oppholdet ditt hvis du ikke kan gjøre det. Se mer informasjon om avbestillingsforsikring i vår booking forhold.`,\r\n CUP_CancelPolicyLabel: `Ja, jeg ønsker å kjøpe avbestillingsforsikring for`,\r\n CUP_GuestInfo: `Gjest informasjon`,\r\n CUP_BookingOverview: `Reserveringsoversikt`,\r\n CUP_PayWithGiftcard: `Å betale med gavekort`,\r\n CUP_PayWithGiftcardClick: `Klikk her`,\r\n CUP_PayWithGiftcardDescription: `Skriv inn koden din fra gavekortet ditt`,\r\n CUP_PayWithGiftcardError: `Gavekort er ikke aktive eller ble ikke funnet i systemet.`,\r\n CUP_PayWithGiftcardStatus: `Gavekort aktivt`,\r\n CUP_PayWithGiftcardDiscount: `Gavekortbeløp`,\r\n CUP_PayWithGiftcardHeader: `Gavekort`,\r\n CUP_PayWithGiftcardInformation: `Vil du løse inn et gavekort?`,\r\n CUP_PayWithGiftcardPlaceholder: `Gavekortkode`,\r\n CUP_PayWithGiftcardRedeem: `Løs inn`,\r\n CUP_BookingOverviewToPay: `Å betale`,\r\n\r\n PAL_GoToPayment: `Gå til betaling`,\r\n PAL_PaymentComplete: `Denne betalingen er fullført`,\r\n PAL_PaymentNotAvailable: `Betaling på denne reservation er ikke tilgængelig`,\r\n\r\n PAR_Payment: `innbetaling`,\r\n PAR_SeekAuthorization: `MERK: I feltene nedenfor, er beløpet vi trekke på kontoen din angitt på betalingen. Hvis 0 er angitt, vil vi bruke dine kredittkortopplysninger utelukkende for å garantere din reservasjon.`,\r\n PAR_TotalLabel: `Pris for bestillingen`,\r\n PAR_TotalPayLabel: `Pris å betale`,\r\n PAR_OBSLabel: `MERK: bli på siden til kvitteringssiden vises med et reservasjonsnummer Kostnaður at gjalda`,\r\n PAR_OBSLabelGiftcard: `MERK: bli på siden til kvitteringssiden vises med et ordrenummer`,\r\n PAR_FailedToPay: `Unnlatt å betale. Sjekk ditt kortnummer.`,\r\n PAR_CardInvalid: `Kortnummeret er ikke gyldig`,\r\n PAR_CardUnknown: `Korttype i ikke kjent`,\r\n PAR_CardMonthInvalid: `Måned er ugyldig`,\r\n PAR_CardYearInvalid: `Året er ugyldig`,\r\n PAR_CardCVCInvalid: `CVV-koden er ugyldig`,\r\n PAR_FieldRequired: `Dette feltet er obligatorisk`,\r\n PAR_Cancel: `Avbryt`,\r\n PAR_Pay: `Betale`,\r\n PAR_PaymentMethod: `Betalingsmetoder`,\r\n PAR_Cardnumber: `Kortnummer`,\r\n PAR_MonthPlaceholder: `MM`,\r\n PAR_YearPlaceholder: `ÅÅ`,\r\n\r\n PFP_Header: `Hov! Dessverre har oppstått en feil`,\r\n PFP_Info: `Og bestillingen har ikke gått gjennom. Vennligst prøv igjen ved å klikke på knappen nedenfor. Ingen penger har blitt trukket fra kontoen din.`,\r\n PFP_TryAgain: `Prøv igjen`,\r\n\r\n REP_Header: `Takk for din bestilling,`,\r\n REP_Comment: `Nedenfor vil du finne kvitteringen for bestillingen.`,\r\n REP_DateRooms: `Reisedato`,\r\n REP_Return: `Gå til nettsiden`,\r\n REP_OrderId: `Din ordrenummer`,\r\n REP_ReservationId: `Din reservasjon ID`,\r\n REP_CustomerInfo: `Personlig informasjon`,\r\n\r\n REP_Name: `Navn`,\r\n REP_PostCity: `ZipCode & City`,\r\n REP_Phone: `telefon`,\r\n REP_Address: `Adresse`,\r\n REP_Country: `Land`,\r\n REP_Email: `e-post`,\r\n REP_Thanks: `takk for din bestilling`,\r\n REP_ThanksInfo: `Vi vil sende deg all den informasjonen om kort tid.`,\r\n REP_ThanksPayment: `Vår betaling er fullført`,\r\n\r\n LOA_Addons: `Laster add-ons`,\r\n LOA_CustomerInfo: `Laster kundeinformasjon`,\r\n LOA_ActivatingCustomer: `aktivering kunde`,\r\n LOA_Translations: `Legge oversettelser`,\r\n LOA_Configuration: `Laster konfigurasjon`,\r\n LOA_Availability: `Laster tilgjengelighet`,\r\n LOA_CreatingReservation: `Opprette bestilling`,\r\n LOA_HotelInformation: `Laster informasjon`,\r\n LOA_Countries: `Legge land`,\r\n LOA_PreparingPaymnent: `forbereder betaling`,\r\n LOA_ApplyingPromo: `Bruk av kampanjekode`,\r\n LOA_Rooms: `Legge rom`,\r\n LOA_Rates: `Legge priser`,\r\n LOA_LoggingIn: `Logger inn`,\r\n LOA_SendingInformation: `sende informasjon`,\r\n\r\n COM_Continue: `Fortsette`,\r\n COM_OK: `OK`,\r\n COM_Persons: `Mennesker`,\r\n COM_Guest_10: `Voksne`,\r\n COM_Guest_9: `Teens`,\r\n COM_Guest_7: `spedbarn`,\r\n COM_Guest_11: `pensjonister`,\r\n COM_Guest_8: `barn`,\r\n COM_Adult: `Voksen`,\r\n COM_Child: `Barn`,\r\n COM_Room: `Rom`,\r\n COM_Cabin: `Hytte`,\r\n COM_House: `Hus`,\r\n COM_Unit: `Enhet`,\r\n COM_Arrival: `Ankomst`,\r\n COM_Departure: `Avgang`,\r\n COM_Promocode: `Rabattkode`,\r\n COM_Rooms: `Rom`,\r\n COM_AddOns: `Add-ons`,\r\n COM_TotalGuests: `antall gjester`,\r\n COM_Price: `Pris`,\r\n COM_TotalPrice: `Totalpris`,\r\n COM_TotalPriceWithTransactionId: `betalte totalt med transactionId`,\r\n COM_TotalReservedWithTransactionId: `reservert totalt med transactionId`,\r\n COM_Close: `Lukk`,\r\n COM_Back: `Tilbake`,\r\n COM_Error: `Info`,\r\n COM_Info: `Informasjon`,\r\n COM_Confirm: `Bekrefte`,\r\n COM_Package: `Pakke`,\r\n COM_SoldOutError: `Det er ingen tilgjengelige rom eller pakker for denne dagen`,\r\n COM_SearchNew: `Nytt søk`,\r\n COM_TableReservation: `Bordreservasjon`,\r\n COM_TableNumberOfPersons: `Antall personer ved bordet`,\r\n COM_Guests: `Gjestene`,\r\n COM_TableChooseProduct: `Velg dato og produkt`,\r\n COM_TablePlaceGuests: `Du må plassere`,\r\n COM_TableChooseProducts: `Velg produkt(er)`,\r\n COM_TableNumberOfGuestsForProduct: `Antall gjester for dette produktet`,\r\n COM_TableBookingFlowAddProduct: `Ønsker du å reservere bord på oppholdet ditt?`,\r\n COM_TableIfNotPressContinue: `Trykk ellers på fortsett`,\r\n COM_AddToBasket: `Annonse til kurven`,\r\n COM_AddedToBasket: `Lagt til i handlekurven`,\r\n COM_Type: `Type`,\r\n COM_SeatingSoldOut: `Ingenting tilgjengelig for øyeblikket`,\r\n COM_Main: `Hjemmeside`,\r\n COM_Conference: `Konference`,\r\n COM_Quantity: `Mengde`,\r\n\r\n LFO_Email: `e-post`,\r\n LFO_EmailRequried: `E-post er påkrevd`,\r\n LFO_EmailInvalid: `E-post er ikke gyldig`,\r\n LFO_Password: `Passord`,\r\n LFO_PasswordRequried: `Passord kreves`,\r\n LFO_ForgotPassword: `Får ikke tilgang til kontoen din?`,\r\n LFO_Login: `Logg Inn`,\r\n LFO_BackToLogin: `Tilbake til Logg inn`,\r\n LFO_Send: `Sende`,\r\n LFO_MessageSend: `Message sende!`,\r\n LFO_LoginError: `Feil e-post eller passord`,\r\n LFO_RecoveryError: `Påloggingsinformasjon ugyldig`,\r\n\r\n SFO_ChooseHotel: `Våre hoteller`,\r\n SFO_ChooseHolidayResort: `Våre Ferie resorts`,\r\n SFO_ChooseCenter: `Våre senter`,\r\n SFO_ChooseDepartment: `Velg Avdeling`,\r\n SFO_ParamsHeader: `Velg dato`,\r\n SFO_Guests: `Gjester i rommet`,\r\n SFO_GuestsCabin: `Gjester i Hytte`,\r\n SFO_GuestsHouse: `Gjester i Hus`,\r\n SFO_GuestsUnit: `Gjester i enhet`,\r\n SFO_AddRoom: `Legg rommet`,\r\n SFO_AddCabin: `Legg hytter`,\r\n SFO_AddHouse: `Legg hus`,\r\n SFO_AddUnit: `Legg enheter`,\r\n SFO_BookStay: `opphold`,\r\n SFO_BookEvent: `Event`,\r\n SFO_BookTakeAway: `Ta bort`,\r\n SFO_BookTableReservation: `Tabell reservasjon`,\r\n SFO_BookGiftcard: `Gavekort`,\r\n SFO_GiftcardMetaData: `Grunnleggende data for gavekortene dine`,\r\n SFO_ChooseGiftcard: `Velg gavekort`,\r\n SFO_NumberOfGiftcards: `Hvor mange av de valgte gavekortene vil du kjøpe?`,\r\n SFO_GiftcardAmount: `Tast inn beløp`,\r\n SFO_GiftcardEnterDetails: `Fyll ut detaljer for gavekortene dine`,\r\n SFO_ChooseGiftcardDescription: `Kjøp et gavekort til noen du bryr deg om`,\r\n SFO_GiftcardDetails: `Gavekortdetaljer`,\r\n SFO_GiftcardTo: `Hvem er gavekortet til (valgfritt)`,\r\n SFO_GiftcardFrom: `Hvem er gavekortet fra (valgfritt)`,\r\n SFO_GiftcardMessage: `Skriv en hilsen (maks 100 tegn) (valgfritt)`,\r\n SFO_BookArrangement: `Ordning`,\r\n SFO_BookConcert: `Konsert`,\r\n SFO_BookTableArangement: `Bord / arrangement`,\r\n SFO_BookTableEvent: `Bord / arrangement`,\r\n SFO_BordTakeAway: `Bord / ta bort`,\r\n SFO_BookTicket: `Billett`,\r\n SFO_BookLecture: `Foredrag`,\r\n SFO_BookTable: `Reservere et bord`,\r\n SFO_BookSpa: `Spa`,\r\n SFO_BookExperience: `Opplevelse`,\r\n SFO_ChooseMonth: `Velg måned`,\r\n SFO_NoRooms: `Ingen tilgjengelige rom funnet for den valgte perioden!`,\r\n SFO_MinLOS: `Den valgte perioden krever bestilling av minimum`,\r\n SFO_Nights: `netter`,\r\n SFO_MaxLOS: `I den valgte perioden er det mulig å bestille maks`,\r\n\r\n CAL_WeekStart: `1`,\r\n CAL_M01: `Januar`,\r\n CAL_M02: `Februar`,\r\n CAL_M03: `Mars`,\r\n CAL_M04: `April`,\r\n CAL_M05: `Mai`,\r\n CAL_M06: `Juni`,\r\n CAL_M07: `Juli`,\r\n CAL_M08: `August`,\r\n CAL_M09: `September`,\r\n CAL_M10: `Oktober`,\r\n CAL_M11: `November`,\r\n CAL_M12: `Desember`,\r\n CAL_D0: `Søndag`,\r\n CAL_D1: `Mandag`,\r\n CAL_D2: `Tirsdag`,\r\n CAL_D3: `Onsdag`,\r\n CAL_D4: `Torsdag`,\r\n CAL_D5: `Fredag`,\r\n CAL_D6: `Lørdag`,\r\n CAL_Selected: `valgt`,\r\n CAL_Occupied: `lukket`,\r\n CAL_Arrival: `stengt for ankomst`,\r\n CAL_Departure: `stengt for avgang`,\r\n CAL_Mon: `M`,\r\n CAL_Tirs: `T`,\r\n CAL_Ons: `O`,\r\n CAL_Tors: `T`,\r\n CAL_Fre: `F`,\r\n CAL_Lor: `L`,\r\n CAL_Sun: `S`,\r\n CAL_Available: `Tilgjengelig`,\r\n CAL_NotPossible: `Ikke mulig`,\r\n\r\n BIN_ChangeDate: `Endre dato`,\r\n BIN_ChangeRoom: `Prøve rom`,\r\n BIN_ChangeAddOns: `Endre add-ons`,\r\n BIN_NoAddOns: `Ingen tjenester lagt`,\r\n BIN_AddOns: `tjenester lagt`,\r\n BIN_Reservation: `Din reservasjon`,\r\n BIN_Details: `Grunnleggende detaljer`,\r\n BIN_RoomCount: `Rom`,\r\n BIN_CabinCount: `Hytter`,\r\n BIN_HouseCount: `Hus`,\r\n BIN_UnitCount: `Enheter`,\r\n BIN_Roomtype: `Romtype`,\r\n BIN_Cabintype: `Hyttetype`,\r\n BIN_Housetype: `Type hus`,\r\n BIN_Unittype: `Enhetstype`,\r\n BIN_Packagetype: `Pakke type`,\r\n BIN_BasketEmpty: `Kurven er tom`,\r\n BIN_BasketGoToCheckout: `Gå til utsjekk`,\r\n\r\n EXC_EmptyBasket: `Basket must not be empty`,\r\n\r\n SEA_Date: `dato`,\r\n SEA_Time: `tid`,\r\n SEA_Quantity: `nummer`,\r\n SEA_Skip: `Hopp over`,\r\n SEA_ChooseEvent: `Velg en opplevelse`,\r\n SEA_DescriptionStart: `Velg`,\r\n SEA_DescriptionEnd: `nedenfor eller dato i kalenderen`,\r\n SEA_SoldOut: `Velg en opplevelse`,\r\n SEA_SoldOutContinue: `Trykk på Fortsett for å hoppe over`,\r\n SEA_SeatingStandAloneTitle: `Velg en dato eller en av de som vises alternativer`,\r\n SEA_ResetCalendar: `Vis alle`,\r\n\r\n MAT_CALENDAR_Calendar_Label: `S`,\r\n MAT_CALENDAR_Close_Calendar_Label: `S`,\r\n MAT_CALENDAR_End_Date_Label: `S`,\r\n MAT_CALENDAR_Next_Month_Label: `S`,\r\n MAT_CALENDAR_Next_Multi_Year_Label: `S`,\r\n MAT_CALENDAR_Next_Year_Label: `S`,\r\n MAT_CALENDAR_Open_Calendar_Label: `S`,\r\n MAT_CALENDAR_Prev_Month_Label: `S`,\r\n MAT_CALENDAR_Prev_Multi_Year_Label: `S`,\r\n MAT_CALENDAR_Prev_Year_Label: `S`,\r\n MAT_CALENDAR_Start_Date_Label: `S`,\r\n MAT_CALENDAR_Switch_To_Month_View_Label: `S`,\r\n MAT_CALENDAR_Switch_To_Multi_Year_View_Label: `S`,\r\n};\r\n","import { Messages } from './index';\r\n\r\nexport const messages: Messages = {\r\n APA_CompanyLogin: `INLOGGNING FÖRETAG`,\r\n APA_Logout: `Logga ut`,\r\n APA_Welcome: `Hej`,\r\n APA_ShowPromo: `Kampanjkod`,\r\n APA_PromoLabel: `Ange kampanjkod`,\r\n APA_Promo: `Kampanjkod`,\r\n APA_PromoSubmit: `Använd`,\r\n APA_PromoChange: `Ändra`,\r\n APA_ActivateHead: `Aktivera inloggning`,\r\n APA_ActivateDesc: `Skriv in lösenord för att aktivera inloggning för`,\r\n APA_Password: `Lösenord`,\r\n APA_ConfirmPassword: `Bekräfta lösenord`,\r\n APA_PasswordHasUpper: `Lösenordet måste innehålla minst en stor bokstav (A-Z).`,\r\n APA_PasswordHasLower: `Lösenordet måste innehålla minst en liten bokstav (a-z).`,\r\n APA_PasswordHasNumber: `Lösenord måste innehålla minst en siffra (0-9).`,\r\n APA_PasswordLength8: `Lösenord måste innehålla minst 8 tecken.`,\r\n APA_ConfirmPasswordEqualTo: `Lösenordet är felaktigt`,\r\n APA_Activate: `Aktivera`,\r\n APA_CustomerNotFound: `Kunden hittas ej`,\r\n APA_ResetBasket: `Kundkorgen kommer att tömmas`,\r\n APA_Address: `Adress`,\r\n APA_Contact: `Kontakta`,\r\n APA_VatNumber: `Org.nr:`,\r\n APA_PromoMessageStart: `Kampanjkod`,\r\n APA_ValidTime: `Giltig period`,\r\n APA_PromoMessageEnd: `Koden gäller på de produkter markerade med en procentuell rabatt`,\r\n APA_AQCDecription: `Åldersbeskrivning`,\r\n APA_Year: `år`,\r\n APA_Book: `Boka`,\r\n\r\n CPA_NothingAvailable_EmptyText: `Vänligen välj datum nedan`,\r\n CPA_NothingAvailable: `Det finns inga lediga rum som uppfyller dina kriterier`,\r\n CPA_SoldOut: `Utsålt`,\r\n CPA_CustomerInvalid: `Okänd kundprofil`,\r\n CPA_PromoInvalid: `Kampanjkoden är inte giltig`,\r\n CPA_PromoBetween: `Kampanjkoden du angav är endast giltig för vistelse mellan:`,\r\n\r\n RPA_More: `Visa mer`,\r\n RPA_Select: `Välj`,\r\n RPA_Selected: `Vald`,\r\n RPA_From: `Från`,\r\n RPA_Image: `Ingen bild`,\r\n RPA_Description: `Beskrivning`,\r\n RPA_ChooseRoom: `Välj rum`,\r\n RPA_ChoosePackage: `Välj Paket`,\r\n RPA_ChooseCabin: `Välj stuga`,\r\n RPA_ChooseHouse: `Välj hus`,\r\n RPA_ChooseUnit: `Välj enhet`,\r\n RPA_BackRate: `Välj ett annat paket`,\r\n RPA_MaxPersons: `Max antal personer`,\r\n RPA_ChooseYourRoom: `Välj rum`,\r\n RPA_ChooseYourCabin: `Välj stuga`,\r\n RPA_ChooseYourHouse: `Välj hus`,\r\n RPA_ChooseYourUnit: `Välj enhet`,\r\n RPA_ChooseYourPackage: `Välj paket`,\r\n\r\n APA_Services: `Tillägg`,\r\n APA_Add: `Lägg till`,\r\n APA_Added: `Tillagt`,\r\n APA_Remove: `Ta bort`,\r\n APA_ContentDialog: `Välj antal personer och de dagar du önskar tillägget. Mellan datumen`,\r\n APA_ChooseYourAddOns: `Tillägg`,\r\n APA_TotalPrice: `Total kostnad`,\r\n APA_TotalInBasket: `1 st, totalt`,\r\n APA_TotalOf: `Välj antal av`,\r\n\r\n CUP_Header: `Köparens information`,\r\n CUP_Accept: `Acceptera`,\r\n CUP_FName: `Namn`,\r\n CUP_FNameReq: `Ange förnamn`,\r\n CUP_FPhoneReq: `Ange mobilnummer`,\r\n CUP_LName: `Efternamn`,\r\n CUP_LNameReq: `Ange efternamn`,\r\n CUP_Address: `Adress`,\r\n CUP_AddressReq: `Ange adress`,\r\n CUP_ZipCode: `Postnummer`,\r\n CUP_ZipCodeReq: `Ange postnummer`,\r\n CUP_City: `Ort`,\r\n CUP_CityReq: `Ange ort`,\r\n CUP_Contry: `Land`,\r\n CUP_ContryReq: `Land gav ett fel, vänligen kontrollera`,\r\n CUP_Phone: `Mobilnummer`,\r\n CUP_PhoneReq: `Ange mobilnummer`,\r\n CUP_Email: `E-post`,\r\n CUP_EmailRepeat: `Upprepa E-post`,\r\n CUP_EmailReq: `Ange e-post`,\r\n CUP_EmailInvalid: `E-post ogiltig`,\r\n CUP_Comment: `Notering`,\r\n CUP_NeedSubscribe: `Prenumerera på nyhetsbrev`,\r\n CUP_AcceptTerms: `Jag har läst och godkänner villkoren`,\r\n CUP_BookNow: `Boka nu`,\r\n CUP_CancelPolicyHeader: `Avbokningsskydd`,\r\n CUP_CancelPolicyDesc: `Du har möjlighet att avboka din vistelse om du får förhinder. Se ytterligare upplysningar gällande avbokningsskydd i våra bokningsvillkor.`,\r\n CUP_CancelPolicyLabel: `Ja, jag vill gärna lägga till avbokningsskydd för`,\r\n CUP_GuestInfo: `Gästinformation`,\r\n CUP_BookingOverview: `Bokningsöversikt`,\r\n CUP_PayWithGiftcard: `För att betala med presentkort`,\r\n CUP_PayWithGiftcardClick: `Klicka här`,\r\n CUP_PayWithGiftcardDescription: `Ange din kod från ditt presentkort`,\r\n CUP_PayWithGiftcardError: `Presentkort är inte aktiva eller kunde inte hittas i systemet.`,\r\n CUP_PayWithGiftcardStatus: `Presentkort aktivt`,\r\n CUP_PayWithGiftcardDiscount: `Presentkortbelopp`,\r\n CUP_PayWithGiftcardHeader: `Presentkort`,\r\n CUP_PayWithGiftcardInformation: `Vill du lösa in ett presentkort?`,\r\n CUP_PayWithGiftcardPlaceholder: `Presentkortskod`,\r\n CUP_PayWithGiftcardRedeem: `Lös in`,\r\n CUP_BookingOverviewToPay: `Att betala`,\r\n\r\n PAL_GoToPayment: `Gå till betalning`,\r\n PAL_PaymentComplete: `Länken har upphört att gälla. Vänligen kontakta`,\r\n PAL_PaymentNotAvailable: `Betaling på denne reservation er ikke tilgængelig`,\r\n\r\n PAR_Payment: `Betalning`,\r\n PAR_SeekAuthorization: `Din kreditkortsinformation kommer att användas som betalning, alternativt som säkerhet för köp.`,\r\n PAR_TotalLabel: `Pris för din beställning`,\r\n PAR_TotalPayLabel: `Pris att betala`,\r\n PAR_OBSLabel: `VIKTIGT: Stäng inte detta fönster förrän kvittosidan dyker upp, där du kan se ditt beställnings-/reservationsnummer!`,\r\n PAR_OBSLabelGiftcard: `OBS: stanna kvar på sidan tills kvittosidan visas med ett beställningsnummer!`,\r\n PAR_FailedToPay: `Det gick inte att betala. Kontrollera ditt kortnummer.`,\r\n PAR_CardInvalid: `Kortnummer är ogiltigt`,\r\n PAR_CardUnknown: `Korttyp i inte känd`,\r\n PAR_CardMonthInvalid: `Månad är ogiltig`,\r\n PAR_CardYearInvalid: `År är ogiltig`,\r\n PAR_CardCVCInvalid: `CVV-kod är ogiltig`,\r\n PAR_FieldRequired: `Detta fält är tvingande`,\r\n PAR_Cancel: `Annullera`,\r\n PAR_Pay: `Betala`,\r\n PAR_PaymentMethod: `Betalningsmetoder`,\r\n PAR_Cardnumber: `Kortnummer`,\r\n PAR_MonthPlaceholder: `MM`,\r\n PAR_YearPlaceholder: `ÅÅ`,\r\n\r\n PFP_Header: `Oj! Det har inträffat ett fel`,\r\n PFP_Info: `Och din beställning inte har gått igenom. Försök igen genom att klicka på knappen nedan. Inga pengar har dragits från ditt konto.`,\r\n PFP_TryAgain: `Försök igen`,\r\n\r\n REP_Header: `Tack för din beställning,`,\r\n REP_Comment: `nedan hittar du ditt kvitto på din beställning.`,\r\n REP_DateRooms: `Ankomstdag`,\r\n REP_Return: `Tillbaka till hemsidan`,\r\n REP_OrderId: `Beställningsnummer`,\r\n REP_ReservationId: `Beställningsnummer`,\r\n REP_CustomerInfo: `Personuppgifter`,\r\n\r\n REP_Name: `Namn`,\r\n REP_PostCity: `Postnummer ort`,\r\n REP_Phone: `Telefon`,\r\n REP_Address: `Adress`,\r\n REP_Country: `Land`,\r\n REP_Email: `E-post`,\r\n REP_Thanks: `Tack för din beställning`,\r\n REP_ThanksInfo: `Du kommer att få en bekräftelse via e-post inom kort.`,\r\n REP_ThanksPayment: `Vår betalning är klar`,\r\n\r\n LOA_Addons: `Hämtar tillval`,\r\n LOA_CustomerInfo: `Hämtar kundinformation`,\r\n LOA_ActivatingCustomer: `Aktivera kund`,\r\n LOA_Translations: `Hämtar översättningar`,\r\n LOA_Configuration: `Läser in konfiguration`,\r\n LOA_Availability: `Hämtar ledighet`,\r\n LOA_CreatingReservation: `Skapar reservation`,\r\n LOA_HotelInformation: `Läser in hotellinformation`,\r\n LOA_Countries: `Laddar länder`,\r\n LOA_PreparingPaymnent: `Förbereder betalning`,\r\n LOA_ApplyingPromo: `Läser in rabattkod`,\r\n LOA_Rooms: `Laddar rum`,\r\n LOA_Rates: `Laddar priser`,\r\n LOA_LoggingIn: `Loggar in`,\r\n LOA_SendingInformation: `Skickar information`,\r\n\r\n COM_Continue: `Fortsätt`,\r\n COM_OK: `OK`,\r\n COM_Persons: `Personer`,\r\n COM_Guest_10: `Vuxna`,\r\n COM_Guest_9: `Ungdom`,\r\n COM_Guest_7: `Spädbarn`,\r\n COM_Guest_11: `Senior`,\r\n COM_Guest_8: `Barn`,\r\n COM_Adult: `vuxen`,\r\n COM_Child: `Barn`,\r\n COM_Room: `Rum`,\r\n COM_Cabin: `Stuga`,\r\n COM_House: `Hus`,\r\n COM_Unit: `Enhet`,\r\n COM_Arrival: `Ankomst`,\r\n COM_Departure: `Avresa`,\r\n COM_Promocode: `Kampanjkod`,\r\n COM_Rooms: `Rum`,\r\n COM_AddOns: `Tillval`,\r\n COM_TotalGuests: `Antal gäster`,\r\n COM_Price: `Pris`,\r\n COM_TotalPrice: `Totalbelopp`,\r\n COM_TotalPriceWithTransactionId: `Totalt betalt med transaktionsnr.`,\r\n COM_TotalReservedWithTransactionId: `Totalt reserverat med transaktionsnr.`,\r\n COM_Close: `Stäng`,\r\n COM_Back: `Tillbaka`,\r\n COM_Error: `Meddelande`,\r\n COM_Info: `Information`,\r\n COM_Confirm: `Bekräfta`,\r\n COM_Package: `Paket`,\r\n COM_SoldOutError: `Det finns inga tillgängliga rum eller paket för denna dag`,\r\n COM_SearchNew: `Ny sökning`,\r\n COM_TableReservation: `Bordsreservation`,\r\n COM_TableNumberOfPersons: `Antal personer`,\r\n COM_Guests: `Gäster`,\r\n COM_TableChooseProduct: `Välj datum och produkt`,\r\n COM_TablePlaceGuests: `‍`,\r\n COM_TableChooseProducts: `Välj produkt/produkter`,\r\n COM_TableNumberOfGuestsForProduct: `Antal gäster`,\r\n COM_TableBookingFlowAddProduct: `Vill du boka bord för din vistelse?`,\r\n COM_TableIfNotPressContinue: `Annars välj fortsätt`,\r\n COM_AddToBasket: `Lägg till`,\r\n COM_AddedToBasket: `Tillagt`,\r\n COM_Type: `Typ`,\r\n COM_SeatingSoldOut: `Inget tillgängligt just nu`,\r\n COM_Main: `Hem`,\r\n COM_Conference: `Konference`,\r\n COM_Quantity: `Kvantitet`,\r\n\r\n LFO_Email: `E-post`,\r\n LFO_EmailRequried: `Ange e-post`,\r\n LFO_EmailInvalid: `E-post ogiltig`,\r\n LFO_Password: `Lösenord`,\r\n LFO_PasswordRequried: `Lösenord krävs`,\r\n LFO_ForgotPassword: `Kommer du inte åt ditt konto?`,\r\n LFO_Login: `Logga in`,\r\n LFO_BackToLogin: `Tillbaka till inloggning`,\r\n LFO_Send: `Skicka`,\r\n LFO_MessageSend: `Meddelande sänt!`,\r\n LFO_LoginError: `Felaktig e-post eller lösenord`,\r\n LFO_RecoveryError: `Inloggningsuppgifter ogiltiga`,\r\n\r\n SFO_ChooseHotel: `Våra hotell`,\r\n SFO_ChooseHolidayResort: `Våra Semesterort`,\r\n SFO_ChooseCenter: `Våra Centrum`,\r\n SFO_ChooseDepartment: `Välj Avdelning`,\r\n SFO_ParamsHeader: `Välj datum`,\r\n SFO_Guests: `Antal gäster i rum`,\r\n SFO_GuestsCabin: `Antal gäster i stuga`,\r\n SFO_GuestsHouse: `Antal gäster i Hus`,\r\n SFO_GuestsUnit: `Antal gäster i enhet`,\r\n SFO_AddRoom: `Boka fler rum`,\r\n SFO_AddCabin: `Boka fler stugor`,\r\n SFO_AddHouse: `Boka fler hus`,\r\n SFO_AddUnit: `Boka fler enheter`,\r\n SFO_BookStay: `vistelse`,\r\n SFO_BookEvent: `Event`,\r\n SFO_BookTakeAway: `Take Away`,\r\n SFO_BookTableReservation: `Bordsreservation`,\r\n SFO_BookGiftcard: `Presentkort`,\r\n SFO_GiftcardMetaData: `Grunddata för dina presentkort`,\r\n SFO_ChooseGiftcard: `Välj Presentkort`,\r\n SFO_NumberOfGiftcards: `Hur många av de valda presentkorten vill du köpa?`,\r\n SFO_GiftcardAmount: `Ange belopp`,\r\n SFO_GiftcardEnterDetails: `Fyll i detaljer för dina presentkort`,\r\n SFO_ChooseGiftcardDescription: `Köp ett presentkort till någon du bryr dig om`,\r\n SFO_GiftcardDetails: `Beskrivning av presentkortet`,\r\n SFO_GiftcardTo: `Vem är presentkortet till? (Valfritt)`,\r\n SFO_GiftcardFrom: `Vem är presentkortet från? (Valfritt)`,\r\n SFO_GiftcardMessage: `Skriv en hälsning (Max 100 tecken - Valfritt)`,\r\n SFO_BookArrangement: `Arrangemang`,\r\n SFO_BookConcert: `Konsert`,\r\n SFO_BookTableArangement: `Bord/Arrangemang`,\r\n SFO_BookTableEvent: `Bord/Upplevelser`,\r\n SFO_BordTakeAway: `Bord / Take away`,\r\n SFO_BookTicket: `Biljetter`,\r\n SFO_BookLecture: `Föreläsning`,\r\n SFO_BookTable: `Boka bord`,\r\n SFO_BookSpa: `Spa`,\r\n SFO_BookExperience: `Upplevelse`,\r\n SFO_ChooseMonth: `Välj månad`,\r\n SFO_NoRooms: `Inga tillgängliga rum hittades för den valda tidsperioden!`,\r\n SFO_MinLOS: `Den valda perioden kräver en bokning av minst`,\r\n SFO_Nights: `nätter`,\r\n SFO_MaxLOS: `Under den valda perioden är det möjligt att boka maximalt`,\r\n\r\n CAL_WeekStart: `1`,\r\n CAL_M01: `Januari`,\r\n CAL_M02: `Februari`,\r\n CAL_M03: `Mars`,\r\n CAL_M04: `April`,\r\n CAL_M05: `Maj`,\r\n CAL_M06: `Juni`,\r\n CAL_M07: `Juli`,\r\n CAL_M08: `Augusti`,\r\n CAL_M09: `September`,\r\n CAL_M10: `Oktober`,\r\n CAL_M11: `November`,\r\n CAL_M12: `December`,\r\n CAL_D0: `Söndag`,\r\n CAL_D1: `Måndag`,\r\n CAL_D2: `Tisdag`,\r\n CAL_D3: `Onsdag`,\r\n CAL_D4: `Torsdag`,\r\n CAL_D5: `Fredag`,\r\n CAL_D6: `Lördag`,\r\n CAL_Selected: `Valt datum`,\r\n CAL_Occupied: `Fullbokat/Stängt`,\r\n CAL_Arrival: `Stängt för ankomst`,\r\n CAL_Departure: `Stängt för avresa`,\r\n CAL_Mon: `M`,\r\n CAL_Tirs: `T`,\r\n CAL_Ons: `O`,\r\n CAL_Tors: `T`,\r\n CAL_Fre: `F`,\r\n CAL_Lor: `L`,\r\n CAL_Sun: `S`,\r\n CAL_Available: `Tillgängliga`,\r\n CAL_NotPossible: `Inte möjligt`,\r\n\r\n BIN_ChangeDate: `Byt datum`,\r\n BIN_ChangeRoom: `Ändra`,\r\n BIN_ChangeAddOns: `Ändra tillval`,\r\n BIN_NoAddOns: `Inga tillval är tillagda`,\r\n BIN_AddOns: `Tillval är tillagt`,\r\n BIN_Reservation: `Din bokning`,\r\n BIN_Details: `Din bokning`,\r\n BIN_RoomCount: `Rum`,\r\n BIN_CabinCount: `Hytter`,\r\n BIN_HouseCount: `Hus`,\r\n BIN_UnitCount: `Enheter`,\r\n BIN_Roomtype: `Rumstyp`,\r\n BIN_Cabintype: `Hyttyp`,\r\n BIN_Housetype: `Yyp av hus`,\r\n BIN_Unittype: `Enhetstyp`,\r\n BIN_Packagetype: `Paket typ`,\r\n BIN_BasketEmpty: `Korgen är tom`,\r\n BIN_BasketGoToCheckout: `Gå till kassan`,\r\n\r\n EXC_EmptyBasket: `Kundkorgen är tom`,\r\n\r\n SEA_Date: `datum`,\r\n SEA_Time: `tid`,\r\n SEA_Quantity: `Antal`,\r\n SEA_Skip: `Skip`,\r\n SEA_ChooseEvent: `Välj en upplevelse`,\r\n SEA_DescriptionStart: `Välj`,\r\n SEA_DescriptionEnd: `nedan eller datum i kalendern`,\r\n SEA_SoldOut: `Allt är tyvärr slutsålt den valda månaden`,\r\n SEA_SoldOutContinue: `Tryck på fortsätt för att hoppa över`,\r\n SEA_SeatingStandAloneTitle: `Välj ett datum eller ett av de som visas alternativ`,\r\n SEA_ResetCalendar: `Visa alla`,\r\n\r\n MAT_CALENDAR_Calendar_Label: `S`,\r\n MAT_CALENDAR_Close_Calendar_Label: `S`,\r\n MAT_CALENDAR_End_Date_Label: `S`,\r\n MAT_CALENDAR_Next_Month_Label: `S`,\r\n MAT_CALENDAR_Next_Multi_Year_Label: `S`,\r\n MAT_CALENDAR_Next_Year_Label: `S`,\r\n MAT_CALENDAR_Open_Calendar_Label: `S`,\r\n MAT_CALENDAR_Prev_Month_Label: `S`,\r\n MAT_CALENDAR_Prev_Multi_Year_Label: `S`,\r\n MAT_CALENDAR_Prev_Year_Label: `S`,\r\n MAT_CALENDAR_Start_Date_Label: `S`,\r\n MAT_CALENDAR_Switch_To_Month_View_Label: `S`,\r\n MAT_CALENDAR_Switch_To_Multi_Year_View_Label: `S`,\r\n};\r\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class MatDatepickerIntl {\n /**\n * Stream that emits whenever the labels here are changed. Use this to notify\n * components if the labels have changed after initialization.\n */\n readonly changes: Subject = new Subject();\n\n /** A label for the calendar popup (used by screen readers). */\n calendarLabel = 'Kalender';\n\n /** A label for the button used to open the calendar popup (used by screen readers). */\n openCalendarLabel = 'Åben kalender';\n\n /** Label for the button used to close the calendar popup. */\n closeCalendarLabel = 'Luk kalender';\n\n /** A label for the previous month button (used by screen readers). */\n prevMonthLabel = 'Forrige månede';\n\n /** A label for the next month button (used by screen readers). */\n nextMonthLabel = 'Næste månede';\n\n /** A label for the previous year button (used by screen readers). */\n prevYearLabel = 'Forrige år';\n\n /** A label for the next year button (used by screen readers). */\n nextYearLabel = 'Næste år';\n\n /** A label for the previous multi-year button (used by screen readers). */\n prevMultiYearLabel = 'Forrige 24 år';\n\n /** A label for the next multi-year button (used by screen readers). */\n nextMultiYearLabel = 'Næste 24 år';\n\n /** A label for the 'switch to month view' button (used by screen readers). */\n switchToMonthViewLabel = 'Vælg dato';\n\n /** A label for the 'switch to year view' button (used by screen readers). */\n switchToMultiYearViewLabel = 'Vælg måned og år';\n\n /** A label for the first date of a range of dates (used by screen readers). */\n startDateLabel = 'Start dato';\n\n /** A label for the last date of a range of dates (used by screen readers). */\n endDateLabel = 'Slut dato';\n\n /** Formats a range of years (used for visuals). */\n formatYearRange(start: string, end: string): string {\n return `${start} \\u2013 ${end}`;\n }\n\n /** Formats a label for a range of years (used by screen readers). */\n formatYearRangeLabel(start: string, end: string): string {\n return `${start} til ${end}`;\n }\n}\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic()\n .bootstrapModule(AppModule)\n .catch((err) => console.error(err));\n","export const theme = (color: string) => {\r\n return `h2,.h2{color:${color}}.btn.btn-primary{border-color:${color};background-color:${color}}.btn.btn-primary:active,.btn.btn-primary.active{color:${color}}@media only screen and (min-width:992px){.btn.btn-primary:hover{color:${color}}}.btn.btn-primary-outline{color:${color};border-color:${color}}.btn.btn-primary-outline:active,.btn.btn-primary-outline.active{background-color:${color}}@media only screen and (min-width:992px){.btn.btn-primary-outline:hover{background-color:${color}}}.calendar-legend .legend-icon.selected{background:${color}}.calendar-day:hover:not(.disabled) .calendar-day-text::before{border-color:${color}}.calendar-day.selected::before{background-color:${color}}.calendar-day.selected-first .calendar-day-text::after,.calendar-day.selected-last .calendar-day-text::after{background-color:${color}}.calendar-day.marked .calendar-day-text::after{border-color:${color};background-color:#FFF}.calendar-day.marked-first .calendar-day-text::before,.calendar-day.marked-last .calendar-day-text::before{border-color:${color}}.room-page .expandable-media-list .card.active::after{border-top-color:${color}}.step-list .step-list-item.active{border-color:${color}}nav{background-color:${color}}.text-primary,mark{color:${color}}.with-toggle.focusable:focus-within,.with-toggle:hover,.with-toggle.active{color:${color};border-color:${color}}.expandable-media-list .card.active{outline-color:${color}}.a-dropdown .a-dropdown-container:focus .a-dropdown-toggle,.a-dropdown .a-dropdown-container:hover .a-dropdown-toggle{color:${color}}.a-dropdown.show .a-dropdown-value .a-dropdown-toggle{border-color:${color}}.list-group .list-group-item.action.active,.list-group .list-group-item.action:hover{background:${color}}`;\r\n}\r\n","var map = {\n\t\"./af\": 58685,\n\t\"./af.js\": 58685,\n\t\"./ar\": 254,\n\t\"./ar-dz\": 4312,\n\t\"./ar-dz.js\": 4312,\n\t\"./ar-kw\": 32614,\n\t\"./ar-kw.js\": 32614,\n\t\"./ar-ly\": 18630,\n\t\"./ar-ly.js\": 18630,\n\t\"./ar-ma\": 28674,\n\t\"./ar-ma.js\": 28674,\n\t\"./ar-sa\": 49032,\n\t\"./ar-sa.js\": 49032,\n\t\"./ar-tn\": 24730,\n\t\"./ar-tn.js\": 24730,\n\t\"./ar.js\": 254,\n\t\"./az\": 53052,\n\t\"./az.js\": 53052,\n\t\"./be\": 60150,\n\t\"./be.js\": 60150,\n\t\"./bg\": 63069,\n\t\"./bg.js\": 63069,\n\t\"./bm\": 13466,\n\t\"./bm.js\": 13466,\n\t\"./bn\": 18516,\n\t\"./bn-bd\": 90557,\n\t\"./bn-bd.js\": 90557,\n\t\"./bn.js\": 18516,\n\t\"./bo\": 26273,\n\t\"./bo.js\": 26273,\n\t\"./br\": 9588,\n\t\"./br.js\": 9588,\n\t\"./bs\": 19815,\n\t\"./bs.js\": 19815,\n\t\"./ca\": 83331,\n\t\"./ca.js\": 83331,\n\t\"./cs\": 21320,\n\t\"./cs.js\": 21320,\n\t\"./cv\": 72219,\n\t\"./cv.js\": 72219,\n\t\"./cy\": 68266,\n\t\"./cy.js\": 68266,\n\t\"./da\": 66427,\n\t\"./da.js\": 66427,\n\t\"./de\": 67435,\n\t\"./de-at\": 52871,\n\t\"./de-at.js\": 52871,\n\t\"./de-ch\": 12994,\n\t\"./de-ch.js\": 12994,\n\t\"./de.js\": 67435,\n\t\"./dv\": 82357,\n\t\"./dv.js\": 82357,\n\t\"./el\": 95649,\n\t\"./el.js\": 95649,\n\t\"./en-au\": 59961,\n\t\"./en-au.js\": 59961,\n\t\"./en-ca\": 19878,\n\t\"./en-ca.js\": 19878,\n\t\"./en-gb\": 3924,\n\t\"./en-gb.js\": 3924,\n\t\"./en-ie\": 70864,\n\t\"./en-ie.js\": 70864,\n\t\"./en-il\": 91579,\n\t\"./en-il.js\": 91579,\n\t\"./en-in\": 30940,\n\t\"./en-in.js\": 30940,\n\t\"./en-nz\": 16181,\n\t\"./en-nz.js\": 16181,\n\t\"./en-sg\": 44301,\n\t\"./en-sg.js\": 44301,\n\t\"./eo\": 85291,\n\t\"./eo.js\": 85291,\n\t\"./es\": 54529,\n\t\"./es-do\": 53764,\n\t\"./es-do.js\": 53764,\n\t\"./es-mx\": 12584,\n\t\"./es-mx.js\": 12584,\n\t\"./es-us\": 63425,\n\t\"./es-us.js\": 63425,\n\t\"./es.js\": 54529,\n\t\"./et\": 35203,\n\t\"./et.js\": 35203,\n\t\"./eu\": 70678,\n\t\"./eu.js\": 70678,\n\t\"./fa\": 83483,\n\t\"./fa.js\": 83483,\n\t\"./fi\": 96262,\n\t\"./fi.js\": 96262,\n\t\"./fil\": 52521,\n\t\"./fil.js\": 52521,\n\t\"./fo\": 34555,\n\t\"./fo.js\": 34555,\n\t\"./fr\": 63131,\n\t\"./fr-ca\": 88239,\n\t\"./fr-ca.js\": 88239,\n\t\"./fr-ch\": 21702,\n\t\"./fr-ch.js\": 21702,\n\t\"./fr.js\": 63131,\n\t\"./fy\": 267,\n\t\"./fy.js\": 267,\n\t\"./ga\": 23821,\n\t\"./ga.js\": 23821,\n\t\"./gd\": 71753,\n\t\"./gd.js\": 71753,\n\t\"./gl\": 4074,\n\t\"./gl.js\": 4074,\n\t\"./gom-deva\": 92762,\n\t\"./gom-deva.js\": 92762,\n\t\"./gom-latn\": 5969,\n\t\"./gom-latn.js\": 5969,\n\t\"./gu\": 82809,\n\t\"./gu.js\": 82809,\n\t\"./he\": 45402,\n\t\"./he.js\": 45402,\n\t\"./hi\": 315,\n\t\"./hi.js\": 315,\n\t\"./hr\": 10410,\n\t\"./hr.js\": 10410,\n\t\"./hu\": 38288,\n\t\"./hu.js\": 38288,\n\t\"./hy-am\": 67928,\n\t\"./hy-am.js\": 67928,\n\t\"./id\": 71334,\n\t\"./id.js\": 71334,\n\t\"./is\": 86959,\n\t\"./is.js\": 86959,\n\t\"./it\": 34864,\n\t\"./it-ch\": 51124,\n\t\"./it-ch.js\": 51124,\n\t\"./it.js\": 34864,\n\t\"./ja\": 36141,\n\t\"./ja.js\": 36141,\n\t\"./jv\": 29187,\n\t\"./jv.js\": 29187,\n\t\"./ka\": 42136,\n\t\"./ka.js\": 42136,\n\t\"./kk\": 94332,\n\t\"./kk.js\": 94332,\n\t\"./km\": 18607,\n\t\"./km.js\": 18607,\n\t\"./kn\": 84305,\n\t\"./kn.js\": 84305,\n\t\"./ko\": 70234,\n\t\"./ko.js\": 70234,\n\t\"./ku\": 16003,\n\t\"./ku.js\": 16003,\n\t\"./ky\": 75061,\n\t\"./ky.js\": 75061,\n\t\"./lb\": 32786,\n\t\"./lb.js\": 32786,\n\t\"./lo\": 66183,\n\t\"./lo.js\": 66183,\n\t\"./lt\": 50029,\n\t\"./lt.js\": 50029,\n\t\"./lv\": 24169,\n\t\"./lv.js\": 24169,\n\t\"./me\": 68577,\n\t\"./me.js\": 68577,\n\t\"./mi\": 68177,\n\t\"./mi.js\": 68177,\n\t\"./mk\": 50337,\n\t\"./mk.js\": 50337,\n\t\"./ml\": 65260,\n\t\"./ml.js\": 65260,\n\t\"./mn\": 52325,\n\t\"./mn.js\": 52325,\n\t\"./mr\": 14695,\n\t\"./mr.js\": 14695,\n\t\"./ms\": 75334,\n\t\"./ms-my\": 37151,\n\t\"./ms-my.js\": 37151,\n\t\"./ms.js\": 75334,\n\t\"./mt\": 63570,\n\t\"./mt.js\": 63570,\n\t\"./my\": 97963,\n\t\"./my.js\": 97963,\n\t\"./nb\": 88028,\n\t\"./nb.js\": 88028,\n\t\"./ne\": 86638,\n\t\"./ne.js\": 86638,\n\t\"./nl\": 50302,\n\t\"./nl-be\": 66782,\n\t\"./nl-be.js\": 66782,\n\t\"./nl.js\": 50302,\n\t\"./nn\": 33501,\n\t\"./nn.js\": 33501,\n\t\"./oc-lnc\": 50563,\n\t\"./oc-lnc.js\": 50563,\n\t\"./pa-in\": 50869,\n\t\"./pa-in.js\": 50869,\n\t\"./pl\": 65302,\n\t\"./pl.js\": 65302,\n\t\"./pt\": 49687,\n\t\"./pt-br\": 74884,\n\t\"./pt-br.js\": 74884,\n\t\"./pt.js\": 49687,\n\t\"./ro\": 79107,\n\t\"./ro.js\": 79107,\n\t\"./ru\": 33627,\n\t\"./ru.js\": 33627,\n\t\"./sd\": 30355,\n\t\"./sd.js\": 30355,\n\t\"./se\": 83427,\n\t\"./se.js\": 83427,\n\t\"./si\": 11848,\n\t\"./si.js\": 11848,\n\t\"./sk\": 54590,\n\t\"./sk.js\": 54590,\n\t\"./sl\": 20184,\n\t\"./sl.js\": 20184,\n\t\"./sq\": 56361,\n\t\"./sq.js\": 56361,\n\t\"./sr\": 78965,\n\t\"./sr-cyrl\": 81287,\n\t\"./sr-cyrl.js\": 81287,\n\t\"./sr.js\": 78965,\n\t\"./ss\": 25456,\n\t\"./ss.js\": 25456,\n\t\"./sv\": 70451,\n\t\"./sv.js\": 70451,\n\t\"./sw\": 77558,\n\t\"./sw.js\": 77558,\n\t\"./ta\": 51356,\n\t\"./ta.js\": 51356,\n\t\"./te\": 73693,\n\t\"./te.js\": 73693,\n\t\"./tet\": 21243,\n\t\"./tet.js\": 21243,\n\t\"./tg\": 42500,\n\t\"./tg.js\": 42500,\n\t\"./th\": 55768,\n\t\"./th.js\": 55768,\n\t\"./tk\": 77761,\n\t\"./tk.js\": 77761,\n\t\"./tl-ph\": 35780,\n\t\"./tl-ph.js\": 35780,\n\t\"./tlh\": 29590,\n\t\"./tlh.js\": 29590,\n\t\"./tr\": 33807,\n\t\"./tr.js\": 33807,\n\t\"./tzl\": 93857,\n\t\"./tzl.js\": 93857,\n\t\"./tzm\": 60654,\n\t\"./tzm-latn\": 8806,\n\t\"./tzm-latn.js\": 8806,\n\t\"./tzm.js\": 60654,\n\t\"./ug-cn\": 30845,\n\t\"./ug-cn.js\": 30845,\n\t\"./uk\": 19232,\n\t\"./uk.js\": 19232,\n\t\"./ur\": 47052,\n\t\"./ur.js\": 47052,\n\t\"./uz\": 77967,\n\t\"./uz-latn\": 32233,\n\t\"./uz-latn.js\": 32233,\n\t\"./uz.js\": 77967,\n\t\"./vi\": 98615,\n\t\"./vi.js\": 98615,\n\t\"./x-pseudo\": 12320,\n\t\"./x-pseudo.js\": 12320,\n\t\"./yo\": 31313,\n\t\"./yo.js\": 31313,\n\t\"./zh-cn\": 64490,\n\t\"./zh-cn.js\": 64490,\n\t\"./zh-hk\": 55910,\n\t\"./zh-hk.js\": 55910,\n\t\"./zh-mo\": 98262,\n\t\"./zh-mo.js\": 98262,\n\t\"./zh-tw\": 44223,\n\t\"./zh-tw.js\": 44223\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;","var map = {\n\t\"./locale-da-DK\": 92393,\n\t\"./locale-da-DK.ts\": 92393,\n\t\"./locale-de-DE\": 67536,\n\t\"./locale-de-DE.ts\": 67536,\n\t\"./locale-en-GB\": 42168,\n\t\"./locale-en-GB.ts\": 42168,\n\t\"./locale-fo-FO\": 9997,\n\t\"./locale-fo-FO.ts\": 9997,\n\t\"./locale-is-IS\": 60757,\n\t\"./locale-is-IS.ts\": 60757,\n\t\"./locale-kl-GL\": 8673,\n\t\"./locale-kl-GL.ts\": 8673,\n\t\"./locale-nn-NO\": 35999,\n\t\"./locale-nn-NO.ts\": 35999,\n\t\"./locale-sv-SE\": 50379,\n\t\"./locale-sv-SE.ts\": 50379\n};\n\n\nfunction webpackAsyncContext(req) {\n\treturn webpackAsyncContextResolve(req).then(__webpack_require__);\n}\nfunction webpackAsyncContextResolve(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(() => {\n\t\tif(!__webpack_require__.o(map, req)) {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t}\n\t\treturn map[req];\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.resolve = webpackAsyncContextResolve;\nwebpackAsyncContext.id = 66691;\nmodule.exports = webpackAsyncContext;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["AsyncSubject","lastValueFrom","LogLevel","LogService","constructor","Instance","next","info","encodeURI","window","location","href","Using","action","logger","addClient","client","clients","push","trace","msg","data","log","Trace","debug","Debug","Information","warn","Warning","error","Error","fatal","Critical","level","entry","date","Date","JSON","parse","stringify","forEach","factory","providedIn","ElementRef","ErrorHandler","TemplateRef","ActivatedRoute","NavigationEnd","Router","combineLatest","first","map","ApplicationStateService","BasketService","ConfigService","CustomerService","HotelService","Loader","Locale","LocaleService","PromotionService","TrackingService","AppErrorHandler","Messenger","Step","StepList","DateHelper","NavigationHelper","DesignConfiguration","i0","ctx_r20","ctx_r26","ctx_r28","ctx_r30","ctx_r32","ctx_r43","ctx_r51","ctx_r53","ctx_r55","ctx_r71","ctx_r74","ctx_r78","ctx_r80","ctx_r82","ctx_r96","ctx_r101","ctx_r114","ctx_r117","ctx_r125","ctx_r127","ctx_r129","ctx_r131","ctx_r142","ctx_r150","ctx_r152","ctx_r154","ctx_r169","ctx_r172","ctx_r176","ctx_r178","ctx_r180","ctx_r184","ctx_r186","ctx_r191","message_r193","message_r200","message_r204","_r206","message_r222","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","goBack","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","removeRatesRoomLink","removeRoomLink","removeLinkbar","removeBasket","removeloginPromotion","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","showMobileMenu","showOrHideBasket","onClosePromoPopup","onShowLoginPopupClick","confirmResetAndRunAction","showLoginPopup","onShowLoginPopupClose","onLogoutClick","logout","seatingLink","continue","HotelCode","ArrivalDate","toServerDateFormatString","LengthOfStay","giftcardLink","clickLocale","menuClick","logoClicked","CustomLogoRedirectURL","basketBadgeNumberSet","navigateToPage","ratesClick","roomClick","scrollTo","left","top","behavior","goHome","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","item","Price","OriginalPrice","RoomGuests","environment","DataConfigService","dataConfigService","version","getCurrentFavicon","getConfiguration","AppSettings","production","urlMustBeModified","WidgetHandlerUrl","console","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","set","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","Favicon","buildLabels","buildApplicationFont","injectHeadTagFromCustomerPortal","setTitle","CustomPageTitle","getHotelConfiguration","UseNetsEasy","Platform","UseNetAxept","AcceptedCards","HotelCurrency","Currency","NetsPaymentEnabled","DibsState","Dibs","none","disabled","toInject","addTag","name","content","departmentCache","GetECommerceRoomInfo","roomCode","encodeURIComponent","GetECommerceRateInfo","ratecode","IsSeatingsAvailable","IsTablesAvailable","GetStayAvailability","fromDate","toDate","rateCode","companyId","definedRateCode","GetECommerceSeatings","distinctByDate","GetECommerceSeating","characteristics","GetECommerceSeatingPortalInfo","seatingCode","bookingflow","GetECommerceTablePortalInfo","GetECommerceConferenceRoomsInfo","GetECommerceConferenceRoomInfo","GetECommerceExtraServiceInfo","itemNumber","GetECommerceExtraServices","ratePlan","adultCount","agecategory1count","agecategory2count","agecategory3count","agecategory4count","GetECommerceSeatingsAvailableMonths","getTableAvailability","departure","guestCount","bookingFlow","payAmountWithGiftcard","model","GetSpectraRoomInfo","fromdate","todate","rateplan","guests","language","FromDate","ToDate","RoomCode","Guests","LanguageCode","GetSpectraRateInfo","definedRoomCode","GetSpectraCancellationprotection","GetCompanyAgreementDiscount","UIFonts","ApplicationFont","HotelLabel","RoomLabel","RoomsLabel","GuestInRoomLabel","ChooseYourRoom","MoreRoomLabel","ChooseRoomLabel","RoomTypeLabel","EventLabel","appSettings","all","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","TotalPrice","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","giftcards","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","Giftcards","giftcard","cardName","FullPayment","RegisterPayment","paymentId","SendNotification","includeServices","calculateTotalPriceForGiftcards","sum","addOnsSum","calculateTotalPriceForSeating","mainWebSiteOrigin","languageCode","order","AcceptUrl","CancelUrl","PaymentCancelUrl","PreferredCulture","Buyer","PhoneNo","Surname","Address","recipient","Adress","Message","giftcardOrderItems","PricePerPiece","card","txtTo","GuestInformation","ToName","txtFrm","FromName","txtMessage","GiftcardMessage","showPrice","OrderItems","pdfCards","Recipient","amount","seat","DataPromotionService","dataPromotionService","getValue","FacebookPixelClientService","initFacebookPixel","page","withFacebookPixel","facebookPixel","addToCart","category","entityType","content_ids","content_type","contents","id","quantity","revenue","item_price","transaction","handler","facebookPixelAccountCode","FacebookPixelAccountCode","googleAnalytics","InitFacebookPixelScript","accountCode","w","fbq","callMethod","apply","arguments","queue","_fbq","loaded","firstScript","parentNode","insertBefore","GoogleAnalyticsClientService","applicationstate","initGoogleAnalytics","withGoogleAnalytics","ga","removeFromCart","affiliation","toFixed","roomName","rateName","sku","RevenueForExtraservices","transactionAffiliation","transactionTotal","serviceName","googleAnalyticsAccountCode","GoogleAnalyticsAccountCode","InitGoogleAnalyticsScript","GoogleAnalyticsObject","q","getTime","append","allowLinker","GoogleHotelAdsClientService","IsGoogleHotelAdsEnabled","GoogleHotelAdsId","axel","random","arrivalDate","departureDate","arrivalDateString","format","departureDateString","lengthOfStay","daysBetween","imageSourceString","GoogleTagManagerClientService","initGoogleTagManager","withGoogleTagManger","googleTagManager","products","event","transactionProducts","googleTagManagerAccountCode","GoogleTagManagerAccountCode","InitGoogleTagManagerScript","dataLayer","SpectraAdsClientService","UseSpectraAdwordsScript","reservationService","getReciept","reciept","updateSessionReservation","updateSessionGiftcard","giftcardInfo","usedGiftcard","getSessionGiftcard","getReservation","completePayment","createGiftcardReservation","giftCardCode","cancelPayment","failPayment","buildReservationTypeForGiftcard","registerPayment","sendNotification","paymentEnabled","bookingInformation","BaseLoader","ls","transparent","HttpHeaders","HttpParams","LogEntry","dayjs","ActionStack","GuidHelper","SpectraLogLevel","ServerLogClientService","NewGuid","allowedLogLevel","min","minLogLevel","logLevel","setLogLevel","clear","sessionId","clientLog","stack","addEntry","FromSpectraLogLevel","entries","slice","ClientLogSize","publish","appName","host","substr","eventLog","lastEvent","ToSpectraLogLevel","appCodeName","appVersion","platform","userAgent","javaEnabled","cookieEnabled","cpuClass","onLine","headers","responseType","Notice","Warn","Fatal","init","waitForPrevAction","pushAndWait","lifeTime","Map","cache","acRoute","storeSearchParams","prev","foundIndex","findIndex","collectSearchParams","clearBasket","obejct","splice","reset","checkUrlForParamater","param","prepare","nav","nextPage","nextMobilePage","resetNextPage","isNextpageEmpty","getRouteParam","paramValue","requestedValue","paramsSubscription","unsubscribe","getCountries","COUNTRIES","getCountry","code","AreaCode","message_r1","LoaderComponent","message$","messages$","every","m","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_r22","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","bookingAddon","Count","roomAddOn","itemSelect","DepartueDate","arrivalName","ArrivalMonthName","departureName","DepartueMonthName","inBasket","some","b","a","basketInfo","_b","removeAll","removeAddOn","newBookings","newAddOn","addOnInBasket","roomId","basketAddOn","basketDate","d","setUTCDate","getDate","isEqual","weekDayName","GetTranslatedWeekDay","getDay","minGuestCount","utc","monthToAdd","setUTCMonth","dateModel","GuestType","ctx_r5","AddOnComponent","getBasketOrFail","addOns$","customerId$","loadAddOns","addOns","onMoveToNextClick","prepareNavigation","addOnsAvailable","getBasket","applyBasket","onItemSelect","addOnUpdates","addOnUpdate","addOnIndex","translation","EXC_EmptyBasket","addonsArray","fill","v","idx","adults","Adult","seniors","Senior","cat1","UnknownType1","cat2","Child","cat3","Infant","basketSeatings","Seatings","TicketTotal","SeatId","addons","addonArray","bookingIndex","addon","sort","SortIndex","SearchComponent","ConferenceSearchComponent","ctx_r10","ctx_r12","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","ctx_r21","message_r24","message_r31","ctx_r38","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_r148","ctx_r161","ctx_r162","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","SinglePrice","SeatingPlanName","table","Total","giftCard","RateName","RateDescription","cancellationPolicyFee","max","cancellationprotection","Percentage","CancellationPolicyServicesIncluded","MinimumAmount","UseCancelPolicy","ctx_r4","GiftcardDetailsComponent","extractGiftcardsFromBasket","useFrom","useTo","useMessage","moveNextClicked","priceChanged","invalidValues","ctx_r23","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_r36","ctx_r46","LandingPageComponent","catchUrlParams","buildHotelPickerData","buildLandingpageTiles","tiles","tileID","moduleType","bookRooms","lable","sortIndex","SortIndexSpectraOnlineBooking","packages","bookPackages","anySeatings","SortIndexSeating","tableReservation","SortIndexTableReservation","SortIndexGiftCard","tile","Single","picker","hotelImage","chooseHotel","deselectAllHotels","PaymentFailedComponent","cancelReservation","of","ctx_r29","ctx_r31","_r27","ctx_r72","message_r75","PaymentLinkComponent","redicrectToRecieptParent","paramMap","resId","loadReservation","hotelInfo","hotelName","topLocation","hasExtraservices","showRoomName","showRoomNameIfNotSameAsBookerName","showServiceName","showServiceNameIfServicesAdded","paymentComplete","paymentNotAvailable","toLowerCase","AcceptPaymentComponent","ProgressGiftcardAxept","progressAxeptMessage","responseModel","EasyGiftcardPaymentAccepted","usingPaymentLink","Empty","EasyPaymentAccepted","sub","qsub","authkey","responseCode","netsResponse","giftcardPaymentModel","CurrencyCode","GiftcardPaymentModel","OrderId","PaidAmount","URL","FlexWinPaymentComponent","appState","RoomLookupError","RoomsNotAvailableReason","RoomsSoldOutReason","ctx_r35","ctx_r57","ctx_r63","ctx_r69","ctx_r76","data_r5","ctx_r91","message_r78","ctx_r134","message_r121","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","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_r59","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_r60","ctx_r70","index_r31","ctx_r81","ctx_r83","ctx_r98","ctx_r86","ctx_r103","ctx_r104","ctx_r105","ctx_r107","ctx_r109","ctx_r110","ctx_r111","ctx_r88","count_r141","ctx_r146","ctx_r151","ctx_r156","index_r117","ctx_r167","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","AQC","loadConfigurations","hotels$","configuration","maxNights","MaxNights","MaxMonth","MaxRoomBook","ParseBookingType","setHotelCode","onSearchFormSubmit","RoomCounts","ctx_r1","SeatingDateCalendarComponent","cellDate","view","foundDate","highlightDates","isSame","foundYear","availableDates","isSameOrAfter","minDate","isSameOrBefore","maxDate","startOf","add","endOf","updateComponent","ngOnChanges","update","setCalendarDate","selectedDate$","dateClicked","startAt","features","SeatingStandaloneCardComponent","onNavigate","imageSrc","header","description","seatingData","sortBy","uniqBy","seating_r8","data_r3","SeatingStandaloneComponent","chosenDate$","chosenDate","buildSeatingData","highlightedDates","getAvailableDates","syncedSeatings","syncSeatings","resetDate","seatingSpectra","seatingsData","Rates","alreadyAddedCharacteristics","occupied","Characteristics","s","seatingPortal","ItemNumber","ID","seatingUiModel","seatingId","newHighDates","startOfDay","uniqHighlightedDates","toDateString","clone","isBefore","isAfter","last","range","data_r6","seatItem_r15","SeatingStandalonePageComponent","queryParamMap","basketInfo$","_c","paramDateFormat","getSeating","seatingParams","_d","rebuildBasket","rebuildSeatingUi","seatingUi","prevVal","curVal","numberOfTickets","setShowAnimation","showAnimation","onNavigateBack","onNavigateToCheckout","seatingPortalInfo","seatItem","SeatItems","seatingRate","SKU","maxTickets","timeSlots","chosenTicketAmount","chosenTimeslot","seatItems","isDateAvailable","pickedDate","updateAmountBasket","existingSeating","seatingsToBasketArray","VareNr","persistBasket","canContinue","updateTimeBasket","dateObject","objectIndex","seatingToBasket","seatId","basketSeating","timeSlot","seatGuest","QueryList","count_r42","ctx_r54","ctx_r58","ctx_r62","SeatingComponent","dateHasBeenClicked","seatingsAreChoosen","seatingWrapper","selectedSeating","buildAvailibleDates","seatingTimesUiModel","loadPageContent","onlySeating","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","isRebuild","diff","seatingWrapperArray","seatingArray","long","exist","wrapper","skip","sortList","spectraSeatings","sortedArray","selectedCharacteristics","calendarDate","specSeat","seatInfo","seatingModel","multipleDays","currentSeat","clockModel","dateA","dateB","GuestsComponent","guestCounter","addGuest","removeGuest","EmptyError","content_r17","ctx_r33","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","ctx_r34","seat_r30","_r32","ctx_r49","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:///"}